【python系統學習06】一張圖看懂列表並學會操作


點擊跳轉-原文地址

數據類型 - 列表(list)

目錄:

一張圖了解列表

先來一個腦圖,一目了然

如果你看圖看不懂我簡寫的是啥意思,可以看圖下的詳細信息。

列表知識點腦圖
列表知識點腦圖

列表是什么

列表是一堆元素的匯總,長得和JS中的數組一樣。

它是數據類型的一種:復雜數據類型— —就是各種數據類型的集合

我們通常用列表+循環的方式來遍歷多個元素。學習它很重要。

列表長啥樣

語法格式

# 偽代碼
列表變量名 = [ 元素1, 元素2, ...后邊可以有多個無數個元素 ]

代碼示例

# 記好這段代碼,下邊很多示例會用到
myName = ['小石頭', 'xing.org1^', 181, True]

格式特征

  • 列表名是我自定義的,如示例中我的“myName”。
  • 用等號給變量賦值,等號右邊的就是列表。
  • 列表中各元素需要用中括號包裹
  • 中括號里可以包裹N多個元素
  • 多個元素之間用英文逗號分割開
  • 列表中的各個元素的類型可以是任何值

列表定義

定義一個列表

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 

報錯效果如下圖:

IndexError錯誤
IndexError錯誤

偏移量提取的結果

結果是列表內的一個元素,數據類型取決於提取出來的那個元素是什么類型的。

列表操作 - 提取多個:切片

提取列表中的一個甚至多個元素用切片。具體切片是啥,見下邊。

切片簡介

寫法上就是一個英文冒號,有時候左右會有數字,數字表示偏移量。

用冒號來截取列表元素的操作叫作切片。

切片示例

print(myName[:]) # ['小石頭', 'xing.org1^', 181, True]
print(myName[2:]) # [181, True]
print(myName[:2]) # ['小石頭', 'xing.org1^']
print(myName[1:3]) # [ 'xing.org1^', 181]

切片作用

是將列表中的一個或多個元素選中。選出來的可以是一個片段里的元素,所以會叫“切片”。

冒號搭配上列表名中括號,就能將元素提取出來。

切片選中規則

1、冒號左邊為空沒有數字的話,就從列表的第一個元素開始截取,即偏移量從0開始取。

2、冒號右邊為空沒有數字的話,就一直取到列表的最后一個元素。

3、對於左邊的數字,切片時是包含關系。

4、而對於右邊的數字,切片時不會包括,會切到右邊數字的前一個。當然,如果右邊沒有數字,會切到最后一個。 比如說,你想切出來下標(偏移量)為2的元素,那么右邊的數字就應該填3。因為他不會切3,而是切到3的前一個。

切片提取的結果

提取的結果是一個列表。可以理解為拷貝了list中的一段出來,然后放到了一個新的列表里。

列表操作 - 增加:append()

向列表中增加一個元素用append,append是一個函數。用法使用列表調用即可。如下:

# 偽代碼
列表變量名.append(參數)

append參數

1、參數類型:不限。可以是字符串、數字這樣的單個元素,也可以是列表、字典這樣的集合元素。

2、參數個數:一個,且必須填一個。如果多填或不填都會報TypeError錯誤。

myName.append() # 報錯TypeError,必須要一個參數

# 報錯如下

# myName.append()

# TypeError: append() takes exactly one argument (0 given)

append作用

append會把參數追加到列表的末尾

增加內容后,列表的長度就會加一,增加的元素就會放在列表的末尾位置。

myName.append('')
print(myName) # ['小石頭', 'xing.org1^', 181, True, '']

一個空串被追加到了列表myName的末尾,成為最后一個元素。

列表操作 - 刪除:del()

del參數

參數個數:可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:])) # 偏移量2、3選中,刪除掉 181、True。myName剩下[小石頭,xing.org1^]
del(myName([1:3])) # 偏移量1、2選中,刪除掉xing.org1^、181。myName剩下[小石頭,True]

刪除整個:切片

用切片刪除所有選中元素

del(myName[:]) # myName成空list了。打印myName得到 []

刪除整個:變量名

del參數為變量名,則刪除整個list列表。

del(myName) # myName就不存在了,再訪問報“未定義”的錯

⚠️myName被刪除后,就不存在了,再訪問就會報“未定義”的錯。


以上,就是關於列表的一些知識點,不夠完善我今后繼續補充,希望對看到的你我有點幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM