Python列表對(duì)象中元素的刪除操作方法
1.列表元素刪操作的方法
列表的刪操作指的是在列表中刪除已存在的元素,列表中的元素被刪除后,后面所有的元素依次往前移動(dòng)一位,掛在被刪除元素的索引下,保證每一個(gè)索引都有元素,如下圖所示。
刪除列表中的元素,常見的有五種方式:
- 調(diào)用remove方法一次刪除一個(gè)指定的元素。
- 該方法是根據(jù)指定的元素去刪除的,一次只能刪除一個(gè)元素,被刪除元素后面的所有元素依次前移一個(gè)位置。
語(yǔ)法格式:
列表名.remove(元素)
- 調(diào)用pop方法一次只刪除一個(gè)指定索引的元素。
- 該方法可以根據(jù)指定的索引,找到對(duì)應(yīng)的元素,然后將其刪除,一次只能刪除一個(gè)元素,使用該方法還可以返回被刪除的元素。
語(yǔ)法格式:
列表名.pop(索引)
- 使用del語(yǔ)句一次至少刪除一個(gè)元素。
- 使用該方法一次可以刪除至少一個(gè)元素,也是根據(jù)指定的索引去刪除元素的,同時(shí)刪除多個(gè)元素時(shí),指定的索引范圍是以切片的形式,一次性刪除多個(gè)元素時(shí),也相當(dāng)于采用的切片。
語(yǔ)法格式:
del 列表名[索引]
del 列表名[起始索引:結(jié)束索引]
- 使用切片獲取一個(gè)范圍的索引,將范圍內(nèi)索引對(duì)應(yīng)的元素設(shè)置成空列表。
- 使用該方法可以將獲取的切片列表,設(shè)置為空列表,也相當(dāng)于是刪除了。
列表名[起始索引:結(jié)束索引] = []
- 使用clear方法清空列表
- 清空整個(gè)列表的內(nèi)容。
列表名.clear()
2.調(diào)用remove方法一次刪除一個(gè)指定的元素
1)使用remove方法刪除列表中的jiangxl元素
mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987] print(mylist) #輸出結(jié)果:['jiangxl', 'linux', 'k8s', 'linux', 'devops', 789, 987] ''' 刪除列表中jiangxl這個(gè)元素,此時(shí)后面的元素依次向前移動(dòng)一個(gè)位置 ''' mylist.remove("jiangxl") print(mylist) #輸出結(jié)果:['linux', 'k8s', 'linux', 'devops', 789, 987]
2)當(dāng)列表中有重復(fù)的元素時(shí),會(huì)刪除列表中最靠前的元素
mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987] ''' 列表中有兩個(gè)元素linux,第一個(gè)linux的索引是1,第二個(gè)linux的索引是3,當(dāng)刪除的元素在列表中存在重復(fù)值,會(huì)刪除最靠前的元素,索引為1的linux將被刪除,然后此元素后面的所有元素的依次向前移動(dòng)一個(gè)位置 ''' mylist.remove("linux") print(mylist) #輸出結(jié)果:['jiangxl', 'k8s', 'linux', 'devops', 789, 987]
3)當(dāng)刪除的元素在列表中不存在時(shí)會(huì)拋出錯(cuò)誤
aaa元素在列表中不存在,當(dāng)刪除aaa會(huì)拋出錯(cuò)誤。
mylist.remove("aaaa") #拋出錯(cuò)誤:ValueError: list.remove(x): x not in list
3.調(diào)用pop方法一次只刪除一個(gè)指定索引的元素
該方法可以根據(jù)指定的索引,找到對(duì)應(yīng)的元素,然后將其刪除,一次只能刪除一個(gè)元素,使用該方法還可以返回被刪除的元素。
由于pop方法刪除了元素后,可以輸出被刪除的元素是什么,如下所示。
mylist.remove("aaaa") #拋出錯(cuò)誤:ValueError: list.remove(x): x not in list
我們也可以美化一下輸出。
3.1.使用pop方法刪除列表中索引為2的元素
mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987] ''' 按照慣例我們都是這么書寫代碼的,但是pop方法可以返回被刪除的元素,因此為了練習(xí)代碼的編寫,可以適當(dāng)使用print美化其輸出 #print(mylist.pop(3)) #print(mylist) 在print函數(shù)中,如果我們要寫多個(gè)字符串,那么就以逗號(hào)進(jìn)行分隔,想要換行輸出,就使用\n ''' print("使用pop方法刪除指定索引的元素為:", mylist.pop(4), "\n刪除元素后當(dāng)前的列表內(nèi)容為:", mylist) ''' 輸出內(nèi)容為: 使用pop方法刪除指定索引的元素為: devops 刪除元素后當(dāng)前的列表內(nèi)容為: ['jiangxl', 'linux', 'k8s', 'linux', 789, 987] '''
3.2.使用pop方法不指定索引
使用pop方法不指定索引,默認(rèn)會(huì)刪除列表中的最后一個(gè)元素。
mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987] print("使用pop方法刪除指定索引的元素為:", mylist.pop(), "\n刪除元素后當(dāng)前的列表內(nèi)容為:", mylist) ''' 使用pop方法刪除指定索引的元素為: 987 刪除元素后當(dāng)前的列表內(nèi)容為: ['jiangxl', 'linux', 'k8s', 'linux', 'devops', 789] '''
3.3.使用pop方法指定的索引不存在時(shí)同樣也會(huì)拋出錯(cuò)誤
print("使用pop方法刪除指定索引的元素為:", mylist.pop(100), "\n刪除元素后當(dāng)前的列表內(nèi)容為:", mylist) IndexError: pop index out of range
4.使用del語(yǔ)句一次至少刪除一個(gè)元素
使用該方法一次可以刪除至少一個(gè)元素,也是根據(jù)指定的索引去刪除元素的,同時(shí)刪除多個(gè)元素時(shí),指定的索引范圍是以切片的形式,一次性刪除多個(gè)元素時(shí)相當(dāng)于采用的切片形式。
4.1.使用del語(yǔ)句根據(jù)指定的索引一次刪除一個(gè)元素
刪除索引為2的元素,索引為2的元素是k8s,k8s元素會(huì)被刪除。
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] del mylist[2] print(mylist) #輸出結(jié)果:['jiangxl', 'linux', 'devops', 789, 987]
4.2.使用del語(yǔ)句根據(jù)指定的切片一次刪除多個(gè)元素
刪除索引1到索引4范圍內(nèi)對(duì)應(yīng)的元素。
分析:切片的索引范圍是1~4,4是結(jié)束索引不納入切片列表,此時(shí)1、2、3這三索引對(duì)應(yīng)的元素linux、k8s、devops都會(huì)被刪除。
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] del mylist[1:4] print(mylist) #輸出結(jié)果:['jiangxl', 789, 987]
4.3.使用del語(yǔ)句清空列表的所有元素
使用del語(yǔ)句清空列表的所有元素使用下面的代碼。
del mylist[:] print(mylist) #輸出:[]
4.4.使用slice方法實(shí)現(xiàn)
只要是切片操作,都可以使用slice方法實(shí)現(xiàn)。
需求:刪除索引1~5范圍內(nèi)對(duì)應(yīng)的元素,且步長(zhǎng)為2。
分析:切片范圍1~5,5是結(jié)束索引不納入切片范圍,步長(zhǎng)為2,間隔就是1,最終1、3兩個(gè)索引對(duì)應(yīng)的元素linux、devops會(huì)被刪除。
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] del mylist[slice(1,5,2)] print(mylist) #輸出:['jiangxl', 'k8s', 789, 987]
5.使用切片賦值空的方式刪除列表中的元素
使用切片獲取1個(gè)或多個(gè)索引對(duì)應(yīng)的元素,然后將其賦值為空,形成一個(gè)切片空列表,也相當(dāng)于將列表中的元素刪除了。
5.1.使用切片賦值為空列表刪除列表中的一個(gè)元素
刪除索引為2的元素。
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] mylist[2:3] = [] ''' 切片范圍2:3,3作為結(jié)束索引不納入切片范圍,只有索引為2的元素會(huì)被處理,這里設(shè)置為空,相當(dāng)于刪除,后面的所有元素依次向前移動(dòng)一個(gè)位置 ''' print(mylist) #輸出:['jiangxl', 'linux', 'devops', 789, 987]
5.2.使用切片賦值為空列表刪除列表中的多個(gè)元素
刪除索引1到索引4范圍內(nèi)對(duì)應(yīng)的元素。
分析:切片的索引范圍是1~4,4是結(jié)束索引不納入切片列表,此時(shí)1、2、3這三索引對(duì)應(yīng)的元素linux、k8s、devops會(huì)被設(shè)置為空。
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] mylist[1:4] = [] print(mylist) #輸出:['jiangxl', 789, 987]
5.3.使用切片賦值為空列表清空整個(gè)列表
mylist[:] = [] print(mylist) #輸出:[]
6.使用clear方法清空列表所有元素
mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987] mylist.clear() print(mylist) #輸出:[]
到此這篇關(guān)于Python列表對(duì)象中元素的刪除操作方法的文章就介紹到這了,更多相關(guān)Python列表元素刪除操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python第三方常用模塊openpyxl的簡(jiǎn)單介紹
openpyxl模塊是一個(gè)讀寫Excel?2010文檔的Python庫(kù),如果要處理更早格式的Excel文檔,需要用到額外的庫(kù),openpyxl是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔,下面這篇文章主要給大家介紹了關(guān)于Python第三方常用模塊openpyxl的相關(guān)資料,需要的朋友可以參考下2022-08-08Python numpy線性代數(shù)用法實(shí)例解析
這篇文章主要介紹了Python numpy線性代數(shù)用法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python?clip與range函數(shù)保姆級(jí)使用教程
本文主要和大家介紹了詳解Python中clip與range函數(shù)的用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參,希望能幫助到大家2022-06-06django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-08Python爬取肯德基官網(wǎng)ajax的post請(qǐng)求實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Python爬取肯德基官網(wǎng)ajax的post請(qǐng)求實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家學(xué)有所得,多多進(jìn)步2021-10-10Python中導(dǎo)入csv數(shù)據(jù)文件的詳細(xì)示例教程
Python中的csv模塊是一種用于讀取和寫入csv文件的模塊,csv可以用于將數(shù)據(jù)從文件或者其他來(lái)源導(dǎo)入到Python中進(jìn)行分析和處理,在這篇文章中,我們將全面介紹Python中如何導(dǎo)入csv文件,并將從多個(gè)方面進(jìn)行詳細(xì)探討,感興趣的朋友一起看看吧2024-03-03