日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python列表對象中元素的刪除操作方法_python

作者:Jiangxl~ ? 更新時間: 2023-01-23 編程語言

1.列表元素刪操作的方法

列表的刪操作指的是在列表中刪除已存在的元素,列表中的元素被刪除后,后面所有的元素依次往前移動一位,掛在被刪除元素的索引下,保證每一個索引都有元素,如下圖所示。

image-20220730161200396

刪除列表中的元素,常見的有五種方式:

  • 調用remove方法一次刪除一個指定的元素。
  • 該方法是根據指定的元素去刪除的,一次只能刪除一個元素,被刪除元素后面的所有元素依次前移一個位置。

語法格式:
列表名.remove(元素)

  • 調用pop方法一次只刪除一個指定索引的元素。
  • 該方法可以根據指定的索引,找到對應的元素,然后將其刪除,一次只能刪除一個元素,使用該方法還可以返回被刪除的元素。

語法格式:
列表名.pop(索引)

  • 使用del語句一次至少刪除一個元素。
  • 使用該方法一次可以刪除至少一個元素,也是根據指定的索引去刪除元素的,同時刪除多個元素時,指定的索引范圍是以切片的形式,一次性刪除多個元素時,也相當于采用的切片。

語法格式:
del 列表名[索引]
del 列表名[起始索引:結束索引]

  • 使用切片獲取一個范圍的索引,將范圍內索引對應的元素設置成空列表。
  • 使用該方法可以將獲取的切片列表,設置為空列表,也相當于是刪除了。

列表名[起始索引:結束索引] = []

  • 使用clear方法清空列表
  • 清空整個列表的內容。

列表名.clear()

2.調用remove方法一次刪除一個指定的元素

1)使用remove方法刪除列表中的jiangxl元素

mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987]
print(mylist)
#輸出結果:['jiangxl', 'linux', 'k8s', 'linux', 'devops', 789, 987]
'''
    刪除列表中jiangxl這個元素,此時后面的元素依次向前移動一個位置
'''
mylist.remove("jiangxl")
print(mylist)

#輸出結果:['linux', 'k8s', 'linux', 'devops', 789, 987]

image-20220730162401689

2)當列表中有重復的元素時,會刪除列表中最靠前的元素

mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987]
'''
列表中有兩個元素linux,第一個linux的索引是1,第二個linux的索引是3,當刪除的元素在列表中存在重復值,會刪除最靠前的元素,索引為1的linux將被刪除,然后此元素后面的所有元素的依次向前移動一個位置
'''
mylist.remove("linux")
print(mylist)

#輸出結果:['jiangxl', 'k8s', 'linux', 'devops', 789, 987]

3)當刪除的元素在列表中不存在時會拋出錯誤

aaa元素在列表中不存在,當刪除aaa會拋出錯誤。

mylist.remove("aaaa")

#拋出錯誤:ValueError: list.remove(x): x not in list

image-20220730162937195

3.調用pop方法一次只刪除一個指定索引的元素

該方法可以根據指定的索引,找到對應的元素,然后將其刪除,一次只能刪除一個元素,使用該方法還可以返回被刪除的元素。

由于pop方法刪除了元素后,可以輸出被刪除的元素是什么,如下所示。

mylist.remove("aaaa")

#拋出錯誤:ValueError: list.remove(x): x not in list

image-20220730163519672

我們也可以美化一下輸出。

3.1.使用pop方法刪除列表中索引為2的元素

mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987]
'''
    按照慣例我們都是這么書寫代碼的,但是pop方法可以返回被刪除的元素,因此為了練習代碼的編寫,可以適當使用print美化其輸出
    #print(mylist.pop(3))
    #print(mylist)
    
    在print函數中,如果我們要寫多個字符串,那么就以逗號進行分隔,想要換行輸出,就使用\n
'''
print("使用pop方法刪除指定索引的元素為:", mylist.pop(4), "\n刪除元素后當前的列表內容為:", mylist)

'''
輸出內容為:
使用pop方法刪除指定索引的元素為: devops 
刪除元素后當前的列表內容為: ['jiangxl', 'linux', 'k8s', 'linux', 789, 987]
'''

image-20220730164019008

3.2.使用pop方法不指定索引

使用pop方法不指定索引,默認會刪除列表中的最后一個元素。

mylist = ["jiangxl", "linux", "k8s", "linux", "devops", 789, 987]
print("使用pop方法刪除指定索引的元素為:", mylist.pop(), "\n刪除元素后當前的列表內容為:", mylist)

'''
使用pop方法刪除指定索引的元素為: 987 
刪除元素后當前的列表內容為: ['jiangxl', 'linux', 'k8s', 'linux', 'devops', 789]
'''

image-20220730164129357

3.3.使用pop方法指定的索引不存在時同樣也會拋出錯誤

print("使用pop方法刪除指定索引的元素為:", mylist.pop(100), "\n刪除元素后當前的列表內容為:", mylist)

IndexError: pop index out of range

image-20220730164207423

4.使用del語句一次至少刪除一個元素

使用該方法一次可以刪除至少一個元素,也是根據指定的索引去刪除元素的,同時刪除多個元素時,指定的索引范圍是以切片的形式,一次性刪除多個元素時相當于采用的切片形式。

4.1.使用del語句根據指定的索引一次刪除一個元素

刪除索引為2的元素,索引為2的元素是k8s,k8s元素會被刪除。

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
del mylist[2]
print(mylist)

#輸出結果:['jiangxl', 'linux', 'devops', 789, 987]

image-20220730164845466

4.2.使用del語句根據指定的切片一次刪除多個元素

刪除索引1到索引4范圍內對應的元素。

分析:切片的索引范圍是1~4,4是結束索引不納入切片列表,此時1、2、3這三索引對應的元素linux、k8s、devops都會被刪除。

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
del mylist[1:4]
print(mylist)

#輸出結果:['jiangxl', 789, 987]

image-20220730164858854

4.3.使用del語句清空列表的所有元素

使用del語句清空列表的所有元素使用下面的代碼。

del mylist[:]
print(mylist)

#輸出:[]

4.4.使用slice方法實現

只要是切片操作,都可以使用slice方法實現。

需求:刪除索引1~5范圍內對應的元素,且步長為2。

分析:切片范圍1~5,5是結束索引不納入切片范圍,步長為2,間隔就是1,最終1、3兩個索引對應的元素linux、devops會被刪除。

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
del mylist[slice(1,5,2)]
print(mylist)

#輸出:['jiangxl', 'k8s', 789, 987]

5.使用切片賦值空的方式刪除列表中的元素

使用切片獲取1個或多個索引對應的元素,然后將其賦值為空,形成一個切片空列表,也相當于將列表中的元素刪除了。

5.1.使用切片賦值為空列表刪除列表中的一個元素

刪除索引為2的元素。

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
mylist[2:3] = []
'''
    切片范圍2:3,3作為結束索引不納入切片范圍,只有索引為2的元素會被處理,這里設置為空,相當于刪除,后面的所有元素依次向前移動一個位置
'''
print(mylist)

#輸出:['jiangxl', 'linux', 'devops', 789, 987]

image-20220730165835250

5.2.使用切片賦值為空列表刪除列表中的多個元素

刪除索引1到索引4范圍內對應的元素。

分析:切片的索引范圍是1~4,4是結束索引不納入切片列表,此時1、2、3這三索引對應的元素linux、k8s、devops會被設置為空。

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
mylist[1:4] = []
print(mylist)

#輸出:['jiangxl', 789, 987]

5.3.使用切片賦值為空列表清空整個列表

mylist[:] = []
print(mylist)

#輸出:[]

6.使用clear方法清空列表所有元素

mylist = ["jiangxl", "linux", "k8s", "devops", 789, 987]
mylist.clear()
print(mylist)

#輸出:[]

原文鏈接:https://blog.csdn.net/weixin_44953658/article/details/128369505

欄目分類
最近更新