1. 程式人生 > 實用技巧 >Python乾貨丨切片

Python乾貨丨切片

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

以下文章來源於騰訊雲,作者:使用者1788308。

切片

:在python原生list中的運用
通常一個切片操作要提供三個引數[start:stop:step]

start是切片的起始位置

stop是切片的結束位置(不包括)

step可以不提供,預設值是1,步長值不能為0,不然會報錯。

ValueError: slice step cannot be zero

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

當step為正數時,以list[start]元素位置開始, step做為步長到list[stop_]元素位置(不包括)為止,從左向右擷取。start和stop不論是正數還是負數索引還是混用都可以,但是要保證 list[stop]元素的【邏輯】位置,必須在list[start]元素的【邏輯】位置右邊,否則取不出元素。

print(list[0:4])

[0, 1, 2, 3]

print(list[1:-1])

[1, 2, 3, 4, 5, 6, 7, 8]

print(list[-8:8])

[2, 3, 4, 5, 6, 7]
當 step 是負數時,以list[start]元素位置開始, step做為步長到list[stop]元素位置(不包括)為止,從右向左擷取,要保證 list[stop]元素的【邏輯】位置

必須在list[start]元素的【邏輯】位置左邊,否則取不出元素。

print(list[5:2:-1])

[5, 4, 3]

print(list[7:-7:-1])

[7, 6, 5, 4]

start和stop在符合虛擬的邏輯位置關係時,start和stop的絕對值是可以大於length的。

print(list[-12:5:2])

[0, 2, 4]

start和stop都是可以省略的,例如 list[:],被省略的預設由其對應左右邊界起始元素開始擷取。

print(list[:])

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

常用的切片操作

在某個位置插入元素

list[3:3] = "a"
print(list)

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

list[5:5] = ["a","b"]
print(list)

[0, 1, 2, 3, 4, ‘a’, ‘b’, 5, 6, 7, 8, 9]