當有一個列表(lists)或者元組(tuples)或者一個數組(字符串就是一個字符的數組),你想獲取到他們的子集,不需要寫循環語句,直接用分片語法就可以獲取。語法是 start:stop:step,請看下面的例子。
分片語法 Slicing Syntax 例子
以上我們定義了一個列表 a,如果我們想獲取到2,3,4三個元素,只需要使用語法 a[1:4],其中1代表第二個位置的元素即:2,記住,索引是從0開始的。4代表第5個元素,但是返回的列表不包含第5個元素。
a[:3] 只提供了stop值,意思是隻獲取列表前三個的值。
a[3:] 只提供了start值,意思是獲取第三個往後的所有值。
a[:] 只有一個冒號,意思是複製列表。
Python看到中間的冒號就會知道使用的是分片的語法。
高級用法
出現了兩個冒號,最後一個2代表的意思是步進值,從1開始,每次增加2,下一個索引取值就是3,因為最大值是4,停止。所以結果為索引1、3的值的列表 [2,4]
元組分片和列表一樣
使用Python對象slice
slice 傳入的參數和用冒號的語法的參數是一樣的。slice(start, stop, step),記住stop索引處的字符是不包括在結果列表中的。
列表倒序
有一個特殊的用法 list[::-1] 可以使列表倒序排序。
注意,分片後返回的是一個新的對象,修改後不會影響之前的數據。
字符串的分片
[:] 的意思是獲取所有的元素,相當於複製了一份數據。
閱讀更多 趣喜歡編程 的文章