四、Python第四課——Python中列表及其操作(增刪改查)

目錄

一、Python中的列表

1、列表的定義和賦值? ? ??

2、列表的使用

二、列表的“增刪改查”?

1、列表中元素的增加

A、在列表尾添加元素

B、在列表中插入元素

2、列表中“元素的刪除”

A、使用del語句刪除元素

B、使用pop()函數刪除元素

C、彈出列表中任何位置元素

D、根據值刪除元素

3、列表中“元素的修改”

一、Python中的列表

1、列表的定義和賦值? ? ??

? ? ? ? Python中的列表本質上和C語言中的數組類似,如果你學過C語言,那么在理解這一概念時,就沒有難度了。Python中的列表能夠讓你在一個地方存儲成組的信息,可以說,這個是新手直接使用的最強大的功能之一了。(不是我說的,是某本Python書說的,不關我的事)?

? ? ? ? 列表定義:由一系列按特定順序排列的元素組成,其中的元素之間可以沒有任何關系。初學者可以將列表理解為一個“箱子”,這個箱子什么都可以裝,但是得有順序?

? ? ? ? 列表形式:用方括號“[ ]”來表示列表,并用逗號來分割其中的元素。例如:

people=['uncle','father','mother','grandmother','teacher']
print(people)

注意到上圖中的輸出,沒學過編程語言的人可不希望看到有方括號的出現,那么此時要想按照“常理”輸出的話,就得訪問列表元素了。說白了,其實就是要告訴計算機你要操作的元素在哪?

? ? ? ? 前面我們介紹了“列表是有序集合”,因此要訪問列表的任何元素,只需將該元素的位置或索引告訴Python解釋器即可。剛才也提到Python程序就像我們的“新家”一樣,有很多“箱子”,那么要想訪問準確,就得說出箱子名稱,也就是“列表名稱”和“該元素在列表中的位置”.如下代碼所示:

people=['uncle','father','mother','grandmother','teacher']#定義列表
print(people[1])#輸出位置為1的元素
print(people[1].title())#輸出的單詞開頭大寫
print(people[1].upper())#輸出的單詞大寫
print(people[1].lower())#輸出的單詞小寫,用了前面學的字符串函數,溫故知新!

? ? ? ?通過觀察可以看出,Python中列表的“索引”不是從“1”開始的,而是從“0”開始的,這和其他編程語言是相同的,例如C語言中的數組下標。另外,Python還為訪問最后一個列表元素提供了一種特殊語法,我這里稱為“負索引法”:列表下標是“-1”,則訪問列表倒數第一個元素;列表下標是“-2”,則訪問列表倒數第二個元素;以此類推!當列表為空時,這種訪問最后一個元素的方式會導致錯誤。

?至此列表的定義和賦值就結束了。

2、列表的使用

?列表的使用很簡單,我們用兩行代碼來說明:

people=['uncle','father','mother','grandmother','teacher']#定義列表
messgae=people[2]+" "+"is "+people[1]+"'s "+"wife"
print(messgae.title())

二、列表的“增刪改查”?

? ? ? ?列表是變量的集合,可以說是一個“大變量”。既然是變量,那么它就會隨著程序的運行等進行變化。那么,這就涉及到列表的增刪改查了!“查”其實就是上面介紹的訪問的意思。能訪問,說明存在;不能,則說明不存在。這里只是按照數據庫管理的術語命名標題了!

1、列表中元素的增加

列表增加的方法有以下2種:在列表尾添加元素,在列表中插入元素。

A、在列表尾添加元素

這是最簡單的方式了,用代碼說明:

people=['uncle','father','mother','grandmother','teacher']#定義列表
people.append("wife")#用append()方法將元素“wife”添加到列表末尾,并且不影響列表其他元素。
print(people)

? ? ? ?函數append(),可以很方便的在列表末尾添加元素,這就可以動態的創建列表了。所謂“動態”,是指可以先定義一個空的列表,再使用若干append()語句往列表里添加元素,例如下面一段程序:

people_1=[]#定義列表1
people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
people_1.append('uncle')
people_1.append('father')
people_1.append('mother')
people_1.append('grandmother')
people_1.append('teacher')
people_1.append("wife")
print(people_1)
print(people_2)

? ? ? ?這種動態添加元素的方法很常用,在寫代碼的時候,不知道列表中該存儲哪些數據,但是隨著程序的編寫,以上內容逐漸明了,則可以使用append(),為列表“添磚加瓦”。

B、在列表中插入元素

插入的英文單詞“insert”,則是“在列表中插入元素的”函數名。與“向列表末尾添加元素”不同,一個列表只有一個末尾,即前者添加元素的位置是確定的,但是后者要在列表任意位置添加元素。由此,我們在使用本方法時,除了要說明添加的具體元素是什么外,還需指明添加的位置。例如:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)
people_2.insert(3,"grandfather")
print(people_2)

插入詳解:函數insert()在位置3處添加空間,將“grandfather”存儲到這個新的空間,并將之后所有的元素右移一個位置!

2、列表中“元素的刪除”

?刪除列表元素的方法有四種。

A、使用del語句刪除元素

如果知道要刪除的元素在列表中的位置,則可以用del語句刪除元素。代碼舉例:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)
del people_2[1]
print(people_2)
del people_2[1]
print(people_2)

在上述示例中,一旦使用del語句刪除列表中的元素,用戶就無法訪問了。

B、使用pop()函數刪除元素

? ? ? ? 學過C語言的同學可能對這個函數不陌生,因為在棧的操作中有這么一個函數,用于將棧頂元素彈出棧!。而在Python中,可以將列表類比成一個棧(給沒學過C語言的科普一下“棧”這個名詞:棧就像一個水杯(只有一個口),有一定的大小,里面可以裝“元素”,遵循“先進后出”的原則,即如果把所有元素都“入棧”,再“出棧”,那么最先進入的元素,在出棧時,總是最后出來。)在Python中,此方法的默認效果就是:刪除棧頂元素。對應到列表中,就是刪除列表表尾元素。

? ? ? ? 而本方法適用于:要將元素從列表中刪除,但是還要接著使用它的值。(我個人感覺pop()方法只能是稱之為移除,因為在使用本方法時,在大多數情況下,只是把某個元素用另一個變量保存起來)例如,你在CF中殺死一名敵人,那么游戲系統就需要將其從本輪游戲存活者的名單中刪掉,同時還需要使用這名敵人的名字,并在消息欄中顯示“XXX被你擊斃”的消息。

用代碼說明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)#打印列表2
poped_1=people_2.pop()#刪除列表表尾元素,并將其賦值給poped_1
print(people_2)#打印列表2,顯示原表尾元素已被刪除
print(poped_1)#打印彈出的元素,表明可以使用

C、彈出列表中任何位置元素

? ? 在嘗試B方法刪除元素時,細心的同學可能就會發現,可以在pop()函數的括號里加上參數。那么這個參數就可以寫成是列表元素的位置,從而達到“彈出列表中任何位置元素”的目的。

代碼說明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)#打印列表2
poped_1=people_2.pop(1)#刪除列表位置1上的元素,并將其賦值給poped_1
print(people_2)#打印列表2,顯示原表位置為1的元素已被刪除
print(poped_1)#打印彈出的元素

?

以上三種方法大致可以歸類為“在知道元素位置的情況下而進行的刪除操作”那么該如何選擇刪除方法呢?就看你在從列表中刪除某一元素后,是否還要使用該元素。使用,則選擇pop();永不再用,選擇del語句。

D、根據值刪除元素

在未知待刪元素位置的情況下,僅憑待刪元素的值,也可使用remove()函數完成刪除操作。當然,此種方法刪除的元素依然可以在使用,只要提前“備份”。這里需要注意的是:函數remove()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用循環結構來判斷是否刪除了所有這樣的值。

代碼舉例:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)#打印列表2
people_2.remove('teacher')
print(people_2)#打印列表2,表明刪除成功

對比學習,可以使我們的印象深刻:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)#打印列表2,顯示當前列表有的元素,與下文刪除元素后做對比
beifen_1=people_2[0]#也可以是beifen_1="uncle"
#使用A方法刪除列表任意元素
del people_2[0]#刪除元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#打印備份1中的元素
people_2.insert(0,beifen_1)#把剛才刪除的元素再補充回去,方便使用另一種刪除方法
print("\n")#使用B方法刪除列表表尾元素
print(people_2)#打印列表2,顯示當前列表有的元素,與下文刪除元素后做對比
beifen_1=people_2.pop()#備份刪除的元素,同時刪除元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#顯示刪除的元素
people_2.append(beifen_1)#把剛才刪除的元素再補充回去,方便使用另一種刪除方法
print("\n")#使用C方法刪除列表任意元素
print(people_2)#打印列表2,顯示當前列表有的元素,與下文刪除元素后做對比
beifen_1=people_2.pop(0)#備份刪除的元素,同時刪除該元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#顯示刪除的元素
people_2.insert(0,beifen_1)
print("\n")#使用D方法刪除列表任意元素
print(people_2)#打印列表2,顯示當前列表有的元素,與下文刪除元素后做對比
beifen_1="mother"#備份刪除的元素
people_2.remove("mother")
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#顯示刪除的元素
people_2.insert(0,"mother")
print("\n")#是否可以單獨使用pop()函數?
print(people_2)#打印列表2,顯示當前列表有的元素,與下文刪除元素后做對比
people_2.pop(0)#刪除表首元素
print(people_2)#顯示當前列表元素

?

刪除方法小結:

? ? ? ?從上面一段綜合代碼可以看出,刪除列表中某元素時,是需要一定信息的:該元素是什么或者該元素位于列表的哪個位置。既然知道這些信息,那么我們完全可以定義一個變量,將要刪除的元素備份起來,再執行刪除。也就是說,以上刪除語句在我個人看來是一樣的功能“將列表中的某一元素刪除”,而不用區別到底該使用哪種方法。以上在介紹各個方法時,也只是便于大家區分和識記。根本不需要根據“刪除的元素是否要再次使用而選擇調用哪個刪除語句”

3、列表中“元素的修改”

?修改列表中的元素與訪問列表元素類似。要修改列表元素,就得指定列表名、要修改元素的位置以及該元素的新值。

代碼說明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定義列表2
print(people_2)
people_2[0]="policeman"#修改語句
print(people_2)

元素的修改其實就是列表元素的再一次賦值!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531084.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

五、Python第五課——Python中組織列表的相關函數

目錄 一、用sort()函數對列表進行永久排序 二、用sorted()函數對列表進行臨時排序 三、用reverse()函數對列表進行列表原始排序的逆序輸出 四、使用len()函數確定列表長度 創建列表后,內部的元素逐漸增多,其排列順序也是無法預測的,因為…

如何正確下載、安裝Codeblocks?

目錄 一、Codeblocks的下載 二、Codeblocks的安裝 三、Codeblocks的運行 相信很多同學在初學C語言時都會選擇一個短小精悍的代碼編輯器,如CodeBlocks(不說別的了,直接切入正題)。 在2020年(今年)3月份-…

Python:創建列表,其中包含數字1-1000000,為什么Pycharm控制臺結果顯示不完整?

目錄 一、問題描述(尋找解決方法的同學直接看“標題二”) 二、解決辦法 一、問題描述(尋找解決方法的同學直接看“標題二”) 在學習Python過程中遇到一個這樣的問題,也算是一個小BUG吧。題目大意是這樣的&#xff…

六、Python第六課——Python中的for循環及數字列表

目錄 一、Python中的for循環 1、for循環語句的聲明。 2、for循環縮進常見問題 二、數字列表 1、函數range() 2、使用range()函數創建數字列表 3、使用一系列函數處理數字列表(統計) 4、列表解析(生成列表的簡潔方法) 一…

七、Python第七課——有關列表的二三事(切片、切片的遍歷和復制)

目錄 一、切片 二、遍歷切片 三、列表的復制 一、切片 此前,我們學習了如何訪問單個列表以及如何處理列表中的所有元素,那么我們如何處理列表中的部分元素呢?這就引出一個概念“切片” 。我們可以把列表看成是面包,“切片”…

八、Python第八課——元組與列表、代碼格式

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 一、元組的定義 二、元組的遍歷 三、代碼格式 一、元組的定義 1、元組:不可變的列表稱為元組。這個是相對于普通列表而言的,普通列表…

九、Python第九課——Python中的if語句與運用

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 一、if語句 1、檢查變量存儲的值是否相等 2、判定字母或字符串時區別大小寫 3、檢查多個條件 4、檢查特定值是否在列表中 二、if-else語句和if-elif-el…

十、Python第十課——字典的些許知識(重點)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 (請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 初識字典 1、創建字典 2、字典的“增刪改查” …

百度地圖API如何申請?(自認為比較詳細,如解決了你的問題請收藏、點贊、關注)

(請先看置頂博文)本博打開方式,請詳讀_liO_Oil的博客-CSDN博客_怎么把androidstudio卸載干凈 注意:自己申請的AK要保存好,最好不要外借,避免不必要的麻煩!(寫在前面) 目…

PythonPyqt5項目開發完成后如何使用pyinstaller打包——以Pycharm編輯器為例(目前為止最正確的版本,成功打包日期為2020.11.26)

(請先看置頂博文)本博打開方式,請詳讀_liO_Oil的博客-CSDN博客_怎么把androidstudio卸載干凈 最近用Python開發了一個可視化界面,開發過程如魚得水,幾乎沒有BUG出現(項目簡單)。但是在臨近交付時…

十一、Python第十一課——用戶輸入和另一種循環(While)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 學了這么久的Python,大家肯定會好奇,不是說機器學習嗎?不是人機交互嗎?不是人工智能嗎?怎么我學了Python都十…

如何讓新創建的Python文件自動生成作者信息等內容(以Pycharm為例)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 打開Pycharm軟件后,點擊“File”,然后點擊“Settings”,就會出現下面截圖界面:然后按照箭頭所指,在對應位置…

如何將谷歌瀏覽器的背景色(包括顯示的網站界面等)全部調為黑色?2020.12.28

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 因為電腦顯示器正對窗戶的原因,平時為了透氣通風不能使用遮光簾,所以我將整個電腦的所有軟件的主題色設為黑色,這樣能降低一些光的…

Windows 10如何消除文件夾右上角的“相對箭頭”?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 整理筆記本電腦時發現&#xff0…

目標檢測第1步:如何在Windows 10下安裝MiniConda?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、Conda是什么&#xff…

十二、Python第十二課——函數

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 (請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 目錄 (請先看置頂博文&#xff…

目標檢測第2步:如何在Windows 10下安裝Anaconda?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 想要學習目標檢測的朋友可能會發…

目標檢測第3步:如何在Windows 10系統下安裝CUDA(更新時間2022.03.22)

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、自檢 1、查看PC是否…

目標檢測第5步:如何在Windows 10系統下,搭建YOLOv5(5.0)環境?保姆級,沒有人比這個更詳細了(更新時間2022.3.22)

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、安裝Anaconda或Minic…

導入自己寫的類,卻被標紅,原因及解決方法是?(Pycharm編輯器為例)

(請先看這篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完這篇博文,你的問題還是沒有解決,那么加我的公眾號,后臺發消息給我吧!當天回復&#xff01…