列表元素支持用索引訪問,正向索引從0開始
colors=["red","blue","green"]
colors[0] =="red"
colors[1]=="blue"
同時,也可以使用負向索引(python中有序序列都支持負向索引)
colors[-1]=="green"
列表的切片操作
切片操作不是列表特有的,python中的有序序列都支持切片,如字符串,元組。
切片的返回結果類型和切片對象類型一致,返回的是切片對象的子序列,如:對一個列表切片返回一個列表,
字符串切片返回字符串。
切片生成的子序列元素是源版的拷貝。因此切片是一種淺拷貝。
li=["A","B","C","D"]
格式: li[start : end : step]
start是切片起點索引,end是切片終點索引,但切片結果不包括終點索引的值。step是步長默認是1。
t=li[0:3] ["A","B","C"] #起點的0索引可以省略,t=li[:3]
t=li[2: ] ["C","D"] #省略end,則切到末尾
t=li[1:3] ["B","C"]
t=li[0:4:2] ["A","C"] #從li[0]到li[3],設定步長為2。
如何確定start和end,他們是什么關系?
在step的符號一定的情況下,start和end可以混合使用正向和反向索引,無論怎樣,你都要保證
start和end之間有和step方向一致元素 間隔,否則會切出空列表
t=li[0:2]
t=li[0:-2]
t=li[-4:-2]
t=li[-4:2]
上面的結果都是一樣的;t為["A","B"]
t=li[-1:-3:-1]
t=li[-1:1:-1]
t=li[3:1:-1]
t=li[3:-3:-1]
上面的結果都是一樣的;t為["D","C"]
t=li[-1:-3]
t=li[-1:1]
t=li[3:1]
t=li[3:-3]
都切出空列表
同時,step的正負決定了切片結果的元素采集的先后
省略start 和 end表示以原列表全部為目標
t=li[::-1] t--->["C","B","A"] #反向切,切出全部
t=li[:] t--->["A","B","C","D"] #正向切全部