Pyhon 列表切片操作

2021-10-23 05:01:58 字數 1715 閱讀 8348

因為時常用到切片,但是有的時候總是不會逆向返回,或者倒著輸出等,所以做下總結。

切片格式:[start:end:step]  三個位置的都可以省略,step預設為1。

a = [1,2,3,4,5]

print(a[1:]) # [2,3,4,5]

print(a[:]) # [1,2,3,4,5] (start,end) step 預設

print(a[::]) # [1,2,3,4,5] (start,end,step)均取預設值

print(a[::-1]) # [5,4,3,2,1] step=-1,從-1的位置開始,每次加-1輸出全部

print(a[-1:-3:-1]) # [5,4] end=-3,取不到所以是 [-1,-2]位置的輸出

print(a[-1:-3]) # staet = -1 從右取值,step=1,從左開始取值,左右矛盾

# 未指定正確的索引

print(a[-1:]) # [5] 因為-1是最後乙個元素,應該是從最後乙個開始取

# 但step=1,所以只返回了[5]

print(a[-1]) # 5 注意兩者不同

print(a[1:-2]) # [2,3] 按照正序從index=1的位置開始切片,到index=-3的位置

# 上面的這個可以看成前後分別切片組合,到end的前乙個是-3 而不是-1

在切片中從左往右是預設的,即step=1。當未指定開始位置時,從端點處開始。從左向右時,index=0。從右向左時,index=-1 or index = klen(list)-1。當start和end 與 step左右不相互矛盾時,返回正確切片,否則返回空列表。 

n*n 維度 (list其實沒有這麼說的,把它想成矩陣)

a = [[1,2,3,4,5],[6,7,8,9,0],[1,1,1,1,1]]

print(a[1:]) # [[6,7,8,9,0],[1,1,1,1,1]]

print(a[:]) # [[1,2,3,4,5],[6,7,8,9,0],[1,1,1,1,1]]

print(a[::]) # [[1,2,3,4,5],[6,7,8,9,0],[1,1,1,1,1]]

print(a[::-1]) # [[1,1,1,1,1],[6,7,8,9,0],[1,2,3,4,5]]

print(a[-1:-3:-1]) # [[1,1,1,1,1],[6,7,8,9,0]]

print(a[-1:]) #

print(a[-1]) # [1,1,1,1,1]

print(a[0:-1]) # [[1,2,3,4,5],[6,7,8,9,0]]

從上面例子可以看出,n*n維度的切片操作和1*n維度的效果是相同的,在n*n維度中,僅是將[ [list_1],[list_2],....,[list_n]]中的每個[list1]、[list2]、[list3]看作是乙個1*n中的元素。當list中不在是list,而是其他結構如元組等,也是將乙個元組當成乙個整體做切片考慮。

寫完發現一篇寫的很好的部落格(看不懂我的例子,可以看下面部落格,比我寫的好):

列表 切片操作

切片操作 對於列表的切片和字串類似。切片是python序列及其重要的操作,適用於列表 元組 字串等。切片格式如下 切片操作可以讓我們快速提取子列表或修改。標準格式 起始偏移量start,終止偏移量end,步長step 注意 當步長省略時順便可以省略第二個冒號 典型操作 三個最為整數的情況 如下 操作...

列表的切片操作

1 切片取值 slicing 語法 列表 開始索引 結束索引 步長 作用 列表的切片取值是從原列表中取出想要的元素再次組成乙個新的列表 2 切片賦值 slicing assignment 作用 改變原列表的排列,可以出入和修改資料 語法 列表 切片 可迭代物件 說明 切片賦值的賦值運算子 的右側必須...

列表list切片list的切片操作

python中可以對list使用索引來進行切片操作,其語法 python3 如下 a a copy of the whole array a start items start through the rest of the array a stop items from the beginning...