索引:
既有正數索引,也有負數索引,正數以0開始,負數-1為末尾的開始位置
對於切片來講,遵循左閉右開原則,也就是說 最初索引可以取到,最後的索引則不取
例如如圖所示:
實踐:
sl
Out[3]: ['D', 'r', 'e', 'a', 'm']
sl[0]
Out[4]: 'D'
sl[-1]
Out[5]: 'm'
sl[-5]
Out[6]: 'D'
sl[2:4]#輸出第3到4個字符
Out[7]: ['e', 'a']
sl[2:]
Out[8]: ['e', 'a', 'm']
sl[-5:]
Out[9]: ['D', 'r', 'e', 'a', 'm']
list = [1,2,3,4,5,6,7,8]
del list[1:3] #list[1:3] = []
#這兩種刪除方法是一樣的,但是如果對單個對象(不用切片)就[]的話,就會
print(list)
[1, 4, 5, 6, 7, 8]
list = [1,2,3,4,5,6,7,8]#如此
list[3] = []
print(list)
[1, 2, [], 4, 5, 6, 7, 8, 9, 10, 11, 12]
list[:2]=[]
[3,4,5,6,7,8]
查詢
s=[1,991,127,8,9,10,11,12]
s.index(12,0,8)
s.index(12,0,7)
索引遵循左閉右開,不包括 下標8,所以第二行查詢會報錯,如下:
list = [1,2,3,4,5,6,7,8]
print(list[-7:-1:1])
print(list[-1])
print(list[1])
print(list[-1:-9:-1])
print(list[-4:-8:-1])
print(list[4:0:-1])
print(list[4:-8:-1])
[2, 3, 4, 5, 6, 7]
8
2
[8, 7, 6, 5, 4, 3, 2, 1]
[5, 4, 3, 2]
[5, 4, 3, 2]
[5, 4, 3, 2]
列表生成式
#列表生成式
print([i*i for i in range(1,10) if 過濾條件])
# i*i 中的 i 表示列表元素的表達式
# for 後的 i 表示自定義變量 , range()表示可迭代對象
[1, 4, 9, 16, 25, 36, 49, 64, 81]
列表支持運算 + *,內部實現了運算符重載
sl
Out[10]: ['D', 'r', 'e', 'a', 'm']
sl*2
Out[11]: ['D', 'r', 'e', 'a', 'm', 'D', 'r', 'e', 'a', 'm']
['M','y']+sl
Out[14]: ['M', 'y', 'D', 'r', 'e', 'a', 'm']
另外,在以後 如果對Python進行進一步的學習,那麼會遇到Numpy庫,包括許多數據分析,機器學習都會用到該庫,以及一種高級索引范式,在高級索引中支持更多的用法(“奇技淫巧”),等待你的進一步探索!
列表的操作比較簡單,需要注意的就是 對於切片索引的掌控。這一點要著重理解與實踐,可以說列表索引在以後的Python程序中是家常便飯般的存在,學好索引與切片,才能學好列表,為以後Python的學習奠定堅實的基礎。