1. 程式人生 > >使用列表的一部分-python之切片

使用列表的一部分-python之切片

python中的列表是由一系列按特定順序排列的元素組成,其中的元素可以是任何東西,而且其中的元素之間沒有任何關係,有些類似與c#中的一維陣列,只是相比較看來python列表的內涵要深的多。
在python中,用方括號[];來標識列表,並用都好來分割其中的元素,簡單例項如下:

countries=['china','japan','american','germany']
print(countries)

列表元素的訪問和其他語言類似,都是使用索引來指出對應的元素,比如上面的列表mylist,如何我們想打印出’china’這個元素,只需要使用countries[0]來實現就好了。
當然遍歷列表的方法也與其他語言類似,以上面列表為例:

for country in countries:
	print(country)

但如果是要使用列表的一部分呢?
在c#中,我一般用限定遍歷索引的方法來實現,當然python也同樣可以如此。
不過python中實現了一種叫‘切片’的操作,其實也是通過索引來操作,只是更加簡潔(這不就是python的魅力所在嗎)
要建立切片,只需要指定要使用的第一個元素的索引和最後一個元素的索引加一即可(為什麼這時候的索引是從1開始而不是傳統的0),與range函式相同,python在到達指定的第二個索引前面的元素就會停止,例如上面例子,我們要輸出前3個元素只需要:

print(countries[
0:3])

如果是從切片處直接遍歷之列表末尾,則只需使’:'後的索引值為空即可:

print(countries[1:])

如果列表很長而我們又要得到最後面的幾個元素,則可以倒過來遍歷索引,以上面為例,加入我們要得到列表中最後兩個元素(當讓這個列表太短了),只需要實現:

print(coutries[-2:])

這樣的好處是即使列表長度發生改變,輸出結果依舊如此。
切片還有一個大用處是用來複制列表,如果我們切片的索引包含整個列表的話,這樣不就把列表複製下來了嗎。實現的方法很簡單,類似於前面我們實現
從切片處直接遍歷之列表末尾的思路,將前面的索引設定為列表頭不久可以了,程式碼如下:

print(countries[:])

這樣我們把countries[:]賦值給另一個列表就實現了複製操作。