網站首頁 編程語言 正文
1.列表元素刪操作的方法
列表的刪操作指的是在列表中刪除已存在的元素,列表中的元素被刪除后,后面所有的元素依次往前移動一位,掛在被刪除元素的索引下,保證每一個索引都有元素,如下圖所示。
刪除列表中的元素,常見的有五種方式:
- 調用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]
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
3.調用pop方法一次只刪除一個指定索引的元素
該方法可以根據指定的索引,找到對應的元素,然后將其刪除,一次只能刪除一個元素,使用該方法還可以返回被刪除的元素。
由于pop方法刪除了元素后,可以輸出被刪除的元素是什么,如下所示。
mylist.remove("aaaa")
#拋出錯誤:ValueError: list.remove(x): x not in list
我們也可以美化一下輸出。
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]
'''
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]
'''
3.3.使用pop方法指定的索引不存在時同樣也會拋出錯誤
print("使用pop方法刪除指定索引的元素為:", mylist.pop(100), "\n刪除元素后當前的列表內容為:", mylist)
IndexError: pop index out of range
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]
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]
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]
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
相關推薦
- 2022-04-11 nginx從安裝到配置詳細說明(安裝,安全配置,防盜鏈,動靜分離,配置?HTTPS,性能優化)_ng
- 2022-04-25 C#使用NPOI實現Excel導入導出功能_C#教程
- 2022-10-17 Kotlin編程條件控制示例詳解_Android
- 2022-10-14 CompletableFuture解決多線程返回結果問題
- 2024-03-08 SpringBoot項目多模塊開發詳解
- 2022-07-08 .NET?core項目AsyncLocal在鏈路追蹤中的應用_實用技巧
- 2022-11-14 python流程控制語句
- 2022-05-08 Python+matplotlib實現堆疊圖的繪制_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支