[Python] List Slicing

Young Chen
宅男雜誌
Published in
2 min readDec 28, 2018

--

Python當中,我覺得Slice是一個強大有趣的使用方法,是以前學Java從來沒有的方便體驗,因此特別介紹一下。

List在Python中是有序的物件集合,具有索引特性,長度可以變動,在學習過程中比較特別的是發現Python並沒有Array的實作,大概是實務上Array的使用機率比較低,根據Python的禪意,總是簡單的最好,因此只剩List吧。

以下就來玩玩一些有趣的特性:

#create listx = list(range(10))
x[0:5]

Python以中括號代表list,與Array特性一樣,含index的特性,裡面可以直接使用index存取list中資料。與其他語言相較比較特別的是slice的應用,以[from_index:to_index]形式呈現。需要注意的是to_index是不包含,而from_index是被包含的,以下是x[0:5]結果:

x[0:5] = [x[0], x[1], x[2], x[3], x[4]]
x[5:]

留白表示到底的概念,因此從index = 5 開始到底通通會被取出:

x[-10]
#0
x[-1:-4]
#[]
x[-4:-1]
#[6, 7, 8]
x[3:-3]
#[3, 4, 5, 6]

index負數代表從後面來,倒數第一就是-1,因此就是往後數10個。這裡注意from index要小於to index才能回傳有值的結果,不然只會得到空list。

x[::2]
#[0, 2, 4, 6, 8]

第二個冒號後面接續的數值代表的是step,2意思是跳2步的意思,結果就會是範圍是從頭到尾,每次跳2步。

以上就是List Slicing的簡單介紹,下次可以談談List Comprehension。

--

--

Young Chen
宅男雜誌

曾經是全端工程師,目前在資料科學團隊中主要負責雲端架構相關工作,透過自學正在資料科學領域相關知識耕耘中。mail: chiyoung0307@gmail.com