Python當中最重要的資料結構應該算是list跟dictionary了。要存取list內部的元素,傳統上都是使用index:假設有一個list叫做a,長度為10則它的所有元素為a[0], a[1], a[2], ..., a[8], a[9]。Python除了傳統的index外,又提供了一個像瑞士小刀一樣的東西叫slice,本篇稍微介紹一下slice的威力。
slice的語法是:a[m:n],代表從第m個元素開始取,取到第n-1個元素為止。不過slice的用途遠大於存取元素,它還可以存取「看不見的東西」,這樣講是有點毛毛的。不過,要真正了解slice的威力,或許不要從「元素」的角度來看,而是從「位置」的角度來看。如果我們將list當中,元素之間的空隙(最前面跟最後面也算)也標上數字,大概是這個樣子:P0, a[0], P1, a[1], P2, a[2], P3, ..., P8, a[8], P9, a[9], P10。則a[m:n]就代表從第m個位置開始取,取到第n個位置為止。m跟n可以都出現,可以只出現其一,也可以都不出現。a[m:]指的是第m個位置到最後面,a[:n]指的是最前面到第n個位置,a[:]指的是最前面到最後面,其實就等同於a本身,但注意到只是「值」的相等。
如果我們寫:
a=[0,1,2,3,4]