對list的操作
合并list
《有容乃大的list(1)》中,對list的操作提到了list.append(x),也就是將某個元素x 追加到已知的一個list后邊。
除了將元素追加到list中,還能夠將兩個list合并,或者說將一個list追加到另外一個list中。按照前文的慣例,還是首先看官方文檔中的描述:
list.extend(L)
Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L.
向所有正在學習本內容的朋友提供一個成為優秀程序員的必備:看官方文檔,是必須的。
官方文檔的這句話翻譯過來:
通過將所有元素追加到已知list來擴充它,相當于a[len(a)]= L
英語太爛,翻譯太差。直接看例子,更明白
>>> la[1, 2, 3]>>> lb['qiwsir', 'python']>>> la.extend(lb)>>> la[1, 2, 3, 'qiwsir', 'python']>>> lb['qiwsir', 'python']
上面的例子,顯示了如何將兩個list,一個是la,另外一個lb,將lb追加到la的后面,也就是把lb中的所有元素加入到la中,即讓la擴容。
學程序一定要有好奇心,我在交互環境中,經常實驗一下自己的想法,有時候是比較愚蠢的想法。
>>> la = [1,2,3]>>> b = "abc">>> la.extend(b)>>> la[1, 2, 3, 'a', 'b', 'c']>>> c = 5>>> la.extend(c)Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'int' object is not iterable
從上面的實驗中,看官能夠有什么心得?原來,如果extend(str)的時候,str被以字符為單位拆開,然后追加到la里面。
如果extend的對象是數值型,則報錯。
所以,extend的對象是一個list,如果是str,則python會先把它按照字符為單位轉化為list再追加到已知list。
不過,別忘記了前面官方文檔的后半句話,它的意思是:
>>> la[1, 2, 3, 'a', 'b', 'c']>>> lb['qiwsir', 'python']>>> la[len(la):]=lb>>> la[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']
list.extend(L) 等效于 list[len(list):] = L,L是待并入的list
list的長度
還記得str的長度怎么獲得嗎?其長度是什么含呢?那種方法能不能用在list上面呢?效果如何?
做實驗:
>>> name = 'qiwsir'>>> type(name)<type 'str'>>>> len(name)6>>> lname = ['sir','qi']>>> type(lname)<type 'list'>>>> len(lname)2>>> length = len(lname)>>> length2>>> type(length)<type 'int'>
實驗結論:
len(x),對于list一樣適用
得到的是list中元素個數
返回值是int類型
list中某元素的個數
上面的len(L),可得到list的長度,也就是list中有多少個元素。python的list還有一個操作,就是數一數某個元素在該list中出現多少次,也就是某個元素有多少個。官方文檔是這么說的:
新聞熱點
疑難解答