06.09 Arrays 的分片(slicing)語法

Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

當有一個列表(lists)或者元組(tuples)或者一個數組(字符串就是一個字符的數組),你想獲取到他們的子集,不需要寫循環語句,直接用分片語法就可以獲取。語法是 start:stop:step,請看下面的例子。

分片語法 Slicing Syntax 例子


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

以上我們定義了一個列表 a,如果我們想獲取到2,3,4三個元素,只需要使用語法 a[1:4],其中1代表第二個位置的元素即:2,記住,索引是從0開始的。4代表第5個元素,但是返回的列表不包含第5個元素。

a[:3] 只提供了stop值,意思是隻獲取列表前三個的值。

a[3:] 只提供了start值,意思是獲取第三個往後的所有值。

a[:] 只有一個冒號,意思是複製列表。

Python看到中間的冒號就會知道使用的是分片的語法。

高級用法


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

出現了兩個冒號,最後一個2代表的意思是步進值,從1開始,每次增加2,下一個索引取值就是3,因為最大值是4,停止。所以結果為索引1、3的值的列表 [2,4]

元組分片和列表一樣


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

使用Python對象slice


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

slice 傳入的參數和用冒號的語法的參數是一樣的。slice(start, stop, step),記住stop索引處的字符是不包括在結果列表中的。

列表倒序


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

有一個特殊的用法 list[::-1] 可以使列表倒序排序。

注意,分片後返回的是一個新的對象,修改後不會影響之前的數據。

字符串的分片


Python序列 Lists/Tuples/Arrays 的分片(slicing)語法

[:] 的意思是獲取所有的元素,相當於複製了一份數據。


分享到:


相關文章: