徐建忠 于廣浩 呂思寧 蘇奎



摘要:本文通過對python列表方法的介紹和舉例闡明了python語言中列表的使用方法,可讓讀者在理解列表的過程中對其有一個深刻的認識。python列表提供了最常用的11種方法用于對列表的一般操作。列表方法的介紹列出了列表中常用的方法,列表方法的使用通過分析加實例的方式演示了列表的方法使用。
關鍵詞:python;列表;分析
0引言
隨著開源軟件的蓬勃發展。近幾年python得到了軟件行業前所未有的重視。無論是人工智能、機器學習還是大數據等這些熱點領域的背后都有python的影子。Python以其獨有的特點吸引了無數的開發者投入其中,而在python眾多特點中列表數據結構當仁不讓的成為了其最重要的基石。以下將通過python3.6.2版本對python的列表方法進行探索。熟練掌握這些方法是進階python能力的重要一環,而且列表方法的掌握對元組方法的學習也有事半功倍的效果。
1 列表方法的使用
設樣本列表結構如下,并根據此樣本列表進行使用方法的演示。
Sample_list=[‘c,‘a,‘f,‘b,‘d,‘g,‘e,‘q]
listl=[1,2,3,[‘a,‘b,‘c,‘d],4,5,6]
1.1 append
該方法的作用是向列表中添加一個指定的元素。以sample _list列表為例,當執行sample _list。append(‘n)之后,sample _list列表的尾部就會添加一個字符串n。該方法多用于對列表內容的擴充。
1.2 clear
該方法的作用是清空列表,使其內容消失成為空列表。以sample_list列表為例,當執行sanlple_list。clear()之后,sampIe_list列表的內容就都會被刪除。該方法多用于對列表內容的全部刪除。
1.3 copy
該方法的作用是淺復制列表。以sample_list為例,當執行other_list:sample_list。copy()時sample_list會將自身列表的內容復制出來一份傳遞給other_list這個列表。需要特別注意的是:列表的copy方法只執行淺復制,也就意味著復制操作只在列表的第一層起作用。如果嵌套列表執行copy方法的話被嵌套的列表雖然會被復制但之后嵌套列表在被修改的時候會影響到復制出來的列表。
通過以上的代碼可以看到,sample_list列表在執行了copy方法后會復制出一個新的列表(暫命名為other_list)。復制之后,若在sample_list列表后添加了一個‘W,再次查看兩個列表的內容就會發現,sample_list列表的修改并不會影響到other_list列表,也就意味著在這個列子中兩個列表互相修改的時候并不會影響到對方。
下面通過一個例子來說明什么叫淺復制。
通過上面的代碼可以看到,當嵌套列表listl被復制并賦值給list2后,list1和list2都具有了相同的內容。將list1中索引為1的元素修改為100,索引為3的元素(也就是被嵌套列表[‘a,‘b,‘c,‘d])中索引為1的元素修改為‘W后,再次查看list1和list2兩個列表就會發現復制方法執行后list1列表第一層的修改并不會影響到list2列表的第一層,但list1列表第二層的修改就會影響到list2列表的第二層。也就是說,在復制的過程中copy()方法只是復制了列表元素的內存id值,而不是列表元素中存儲的具體內容!
1.4 count
該方法的作用是統計指定元素在列表中出現的次數。以sample_list為例,當執行sample_list。count(‘d)之后會返回‘d在sample_list列表中出現的次數,該方法并不會修改sample_ust列表的內容。此方法多用于對列表元素的統計。
通過以上代碼的執行可以看到,返回結果為1.這就意味著對sample_list統計其中元素‘d的個數為1.
1.5 extend
該方法的作用是通過傳人指定元素或另一個可迭代對象來擴展現有列表中的元素。以sample_list為例,當執行sample_list。extend(‘t)之后在末尾添加元素‘t。
通過以上的代碼可以看到列表的extend方法似乎和append方法的功能相同。兩者之間的不同可通過下面的例子說明。
通過以上的代碼可以清楚地看出,append方法是將[1,2,3]這個列表當做一個整體的對象添加到sample_list列表之中,而extend方法是將[1,2,3]這個列表中的元素逐一追加到sample_list列表之中。這就是兩者之間的區別!
1.6 index
返回指定元素的索引值。以sample_list為例,當執行sample_list。index(‘f)之后會返回‘f元素在該列表中的索引值,如果列表中沒有要查找的元素則會拋出Value Error異常。
通過以上的代碼可以看出‘f在sample_list中的索引值為2.‘t元素不在列表中,無法返回索引值拋出Value Error異常提示。
1.7 insert
在指定的索引值前插入指定的元素。以sample_list為例,當執行sample_list。insert(3,‘W)之后,sample_list列表就會在索引值為3的元素前插入元素‘W。
1.8pop
通過索引值將列表元素移除并返回,若無索引值則操作列表最后一個元素。以sample_list為例,當執行sample_list。pop(2)之后,會將列表中索引值為2的元素(‘f)從列表中移除并返回。如果不指定索引值則會將列表最后一個元素(‘q)從列表中移除并返回。該方法改變了sample_list中的內容,屬于刪除元素的一種形式。
通過以上的代碼可以看出,sample_list列表中的內容發生了變化,將原索引值為2和最后的一個元素(‘f和‘q)從列表中刪除并返回。
1.9 remove
移除列表中指定的元素。以sample_list為例,當執行sample_list。remove(‘a)時,列表中的‘a元素將會被移除且被移除的元素不會被返回。如果被移除的元素不在列表中時。則會拋出Value Error異常提示。
remove和pop都是列表中元素的移除方法。二者之間的區別是:remove方法接收的參數是元素本身,而pop方法接收的參數是元素的索引值。pop方法在沒有傳人參數時默認移除列表中最后一個元素;remove方法在沒有傳人參數時會拋出TypeError:異常提示。
1.10 reverse
將列表反轉。當執行sample_list。reverse()時,列表中的元素會從原來的順序反轉為逆序。
1.11 sort
將列表排序。當執行sample_list。sort()方法之后。列表會按一定的規則進行排序且還可在排序時進行反轉。
通過以上的代碼,可以看到列表已經正序和逆序排序。
2 結束語
在Python語言大行其道的今天,作為其重要基石之一的列表給用戶展現了一種更為高級、靈活的數據結構。使用時可以最小化考慮語法的復雜而更專注于特定業務邏輯的實現。用戶可以通過列表提供的方法完成絕大多數類數組這種數據結構的功能需求,讓開發過程更為便捷、流暢。