第5條瞭解切割序列的方法

Python提供切片操作(slice),可以輕鬆的訪問序列中的某段子集元素。Python常見的數據元素list,str,和bytes均提供slice操作。同時切割操作可以通過__getitem____setitem__特殊方法實現。

切割的基本操作爲:somList[start:end],表示的區間爲左閉右開區間,即[start,end)

注意:很多語言的區間都是左閉右開

1. 當start==0或者end==序列長度時,可以省略
a = ['a','b','c','d','e','f']
print(a[0:2])
print(a[:2])
print(a[2:len(a)]
print(a[2:])
2.在賦值時,對左側列表使用切割操作,會將該列表中處在指定範圍內的對象替換爲新值;如果左側切片沒有指定索引,那麼則會被右側列表替換掉(即使長度不同)
print('Before:',a)
a[2:5] = [2,3,4] #指定位置被修改
print('After:',a)
#################
b = a
a[:] = [2,3,4] # 被替換
assert a is b
print('After:',a)
3.如果在切割時,右側列表的起止索引未指定,那麼會產生一個原列表的拷貝
copy_list = a[:]
print(copy_list)
4.在同一切片操作中,不要同時使用startendstride

python提供someList[start:end:stride]形式,實現步進切割,也就是說每隔stride步長取一個元素

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章