1. 程式人生 > >Python的切片操作

Python的切片操作

當我們需要獲取列表或者元組的部分元素時,我們可能會用到切片特性。

對於一個列表:

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

如果我們要取前兩個元素,我們通常會使用:

>>>l[0],l[1]

但是當元素特別多,我們需要取連續n個元素時,這個方法就很不方便了。

當然,也有人想到使用迴圈的方式:

l_tmp=[]
n=100
for i in range(50,150):
	l_tmp.append(l[i])

這種操作函式略顯麻煩,不過幸運的時,python為我們提供了切片的方法來實現此等問題。

我們通過一個小例子來講解切片的使用方法。

# -*- coding:utf-8 -*-

#列表
l=[0,1,2,3,4,5,6,7,8,9]
#元組
t=(0,1,2,3,4,5,6,7,8,9)
#字串
s='abcdefghijk'

#表示從索引0開始,到索引5為止,且不包括索引5
print(l[0:5])  #輸出[0,1,2,3,4]

#若從索引0開始,則0可以省略
print(l[:5])   #輸出[0,1,2,3,4]

#可以從任意的索引開始
print(l[4:7])  #輸出[4,5,6]

#也可支援負數,表示倒數第三個索引至最後
print(l[-3:])  #輸出[7,8,9]

#表示倒數第三個索引至倒數第一個索引
print(l[-3:-1]) #輸出[7,8]

#還可支援一個步長,表示索引2到索引8中,每隔2取一個值
print(l[2:8:2]) #輸出[2,4,6]

#索引省略表示所有值每兩個取一個值
print(l[::2])   #輸出[0,2,4,6,8]

#都省略表示原樣複製一個list
print(l[:])     #輸出[0,1,2,3,4,5,6,7,8,9]

#元組也支援切片,返回另一個元組
print(t[:5])    #輸出(0,1,2,3,4)

#字串也支援切片,結果為一個字串
print(s[1::2])  #輸出'bdfhj'

參考
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196352269f28f1f00aee485ea27e3c4e47f12bc7000