點擊跳轉-原文地址html
目錄: python
先來一個腦圖,一目瞭然git
若是你看圖看不懂我簡寫的是啥意思,能夠看圖下的詳細信息。github
列表是一堆元素的彙總,長得和JS中的數組同樣。web
它是數據類型的一種:複雜數據類型
— —就是各類數據類型的集合數組
咱們一般用列表+循環的方式來遍歷多個元素。學習它很重要。app
# 僞代碼
列表變量名 = [ 元素1, 元素2, ...後邊能夠有多個無數個元素 ]
# 記好這段代碼,下邊不少示例會用到
myName = ['小石頭', 'xing.org1^', 181, True]
定義一個列表編輯器
myName = ['小石頭', 'xing.org1^', 181, True]
偏移量(又叫 下標)就是每一個元素的編號,從左邊第一個元素開始,編號從0一直到正無窮。函數
我習慣叫「下標」。學習
上例中,0就是偏移量。
經過偏移量來對列表進行索引(可理解爲搜索定位),進而獲取咱們所需的元素。
print(myName[0]) # 獲得「小石頭」
當偏移量的值是小於或等於「列表長度-1」的話,咱們用偏移量獲取列表中的元素,則返回的是列表中咱們想要的這個元素。
print(myName[0]) # 獲得「小石頭」
但當偏移量大於「列表長度-1」時,將會報錯IndexError: list index out of range
。
print(myName[4]) # 偏移量超出——IndexError: list index out of range
報錯效果以下圖:
結果是列表內的一個元素,數據類型取決於提取出來的那個元素是什麼類型的。
提取列表中的一個甚至多個元素用切片。具體切片是啥,見下邊。
寫法上就是一個英文冒號,有時候左右會有數字,數字表示偏移量。
用冒號來截取列表元素的操做叫做切片。
print(myName[:]) # ['小石頭', 'xing.org1^', 181, True]
print(myName[2:]) # [181, True]
print(myName[:2]) # ['小石頭', 'xing.org1^']
print(myName[1:3]) # [ 'xing.org1^', 181]
是將列表中的一個或多個元素選中。選出來的能夠是一個片斷裏的元素,因此會叫「切片」。
冒號
搭配上列表名
和中括號
,就能將元素提取出來。
一、冒號左邊爲空沒有數字的話,就從列表的第一個元素開始截取,即偏移量從0開始取。
二、冒號右邊爲空沒有數字的話,就一直取到列表的最後一個元素。
三、對於左邊的數字,切片時是包含關係。
四、而對於右邊的數字,切片時不會包括,會切到右邊數字的前一個。固然,若是右邊沒有數字,會切到最後一個。 好比說,你想切出來下標(偏移量)爲2的元素,那麼右邊的數字就應該填3。由於他不會切3,而是切到3的前一個。
提取的結果是一個列表。能夠理解爲拷貝了list中的一段出來,而後放到了一個新的列表裏。
向列表中增長一個元素用append,append是一個函數。用法使用列表調用便可。以下:
# 僞代碼
列表變量名.append(參數)
一、參數類型:不限。能夠是字符串、數字這樣的單個元素,也能夠是列表、字典這樣的集合元素。
二、參數個數:一個,且必須填一個。若是多填或不填都會報TypeError
錯誤。
myName.append() # 報錯TypeError,必需要一個參數
# 報錯以下
# myName.append()
# TypeError: append() takes exactly one argument (0 given)
append會把參數追加到列表的末尾
。
增長內容後,列表的長度就會加一,增長的元素就會放在列表的末尾位置。
myName.append('')
print(myName) # ['小石頭', 'xing.org1^', 181, True, '']
一個空串被追加到了列表myName的末尾,成爲最後一個元素。
參數個數:可1個,也可多個。
寫法以下
del(myName[3]) # 刪除掉True
填寫你要刪除元素所在列表內的偏移量到中括號中。用列表名[偏移量]的方式獲取這個元素,而後看成參數傳到del函數內看成參數便可將該元素從列表中刪除。
上例中,偏移量3表明myName中的第四個元素「True」,用中括號+偏移量的方式提取出來後,再用del刪除了。此時再打印myName發現「True」不在了。
發現了個有趣的例子,以下:
myName.append('')
print(myName)
del(myName[4])
print(myName)
del(myName[1],myName[2])
print(myName)
三個打印結果分別以下:
「['小石頭', 'xing.org1^', 181, True, '']
」
「['小石頭', 'xing.org1^', 181, True]
」
「['小石頭', 181]
」
第一個和第二個的打印,應該沒有問題,myName.append('')
往list後邊增長了一個,空串成爲偏移量爲4所對應的元素。而後又del(myName[4])
刪除了第四個元素,因此打印第二行的內容和原來沒增長前的myName又同樣了。
可是第二個del我寫的是del(myName[1],myName[2])
,填寫了兩個參數,我但願刪除「xing.org1^」和「181」這倆。
結果發現,刪除的是「xing.org1^」和「True」。
我猜想它是先從「['小石頭', 'xing.org1^', 181, True]」中刪除第1個即「xing.org1^」。
以後列表變成「['小石頭', 181, True]」,此時他再刪除第2個,也就是「True」。
最後剩下了咱們看到的打印結果:「['小石頭', 181]」。
看來咱們即便一次性向del中傳遞多個參數,他也是一個一個執行的。而且後一個參數刪除是在前一個參數刪除執行結果的基礎上再作的工做。
切片選中規則見上。
切片刪除同偏移量一個原理。切片選中的片斷被看成參數傳遞到del中,都會被刪除。
因此直接看三個示例以下:
del(myName[:2]) # 偏移量0、1選中,刪除掉 小石頭、xing.org1^。myName剩下[181,True]
del(myName([2:])) # 偏移量二、3選中,刪除掉 18一、True。myName剩下[小石頭,xing.org1^]
del(myName([1:3])) # 偏移量一、2選中,刪除掉xing.org1^、181。myName剩下[小石頭,True]
用切片刪除全部選中元素
del(myName[:]) # myName成空list了。打印myName獲得 []
del參數爲變量名,則刪除整個list列表。
del(myName) # myName就不存在了,再訪問報「未定義」的錯
⚠️myName被刪除後,就不存在了,再訪問就會報「未定義」的錯。
以上,就是關於列表的一些知識點,不夠完善我從此繼續補充,但願對看到的你我有點幫助。