Python 列表的操作(元素的刪除)


del:根據索引值刪除元素

del 可以刪除列表中的單個元素,格式為:

del listname[index]

其中,listname 表示列表名稱,index 表示元素的索引值。

del 也可以刪除中間一段連續的元素,格式為:

del listname[start : end]

其中,start 表示起始索引,end 表示結束索引。del 會刪除從索引 start 到 end 之間的元素,不包括 end 位置的元素。

pop():根據索引值刪除元素

Python pop() 方法用來刪除列表中指定索引處的元素,具體格式如下:

listname.pop(index)

其中,listname 表示列表名稱,index 表示索引值。如果不寫 index 參數,默認會刪除列表中的最后一個元素,類似於數據結構中的“出棧”操作。

remove():根據元素值進行刪除

除了 del 關鍵字,Python 還提供了 remove() 方法,該方法會根據元素本身的值來進行刪除操作。

需要注意的是,remove() 方法只會刪除第一個和指定值相同的元素,而且必須保證該元素是存在的,否則會引發 ValueError 錯誤。

干貨來了:

實際運用中我們大都是在循環中刪除列表里的元素

 

s=['python','python','小韓','小柯','小明',7089143]
for i in s:
if i=='python':
s.remove(i)
print(s)

#打印輸出:
>> ['python', '小韓', '小柯', '小明', 7089143]

咦????為什么只刪除了1個元素('python')呢?
接着往下看:
s=['python','python','小韓','小柯','小明',7089143]
for i in s:
s.remove(i)
print(s)
#打印輸出:
>> ['python', '小柯', 7089143]
??????為什么不是[]呢?
主要因為remove改變了list長度和每一個元素的位置
也就是說當條件成立是,第一次循環
s.remove(i)刪除了第一個元素,
第二次循環時由於列表被改變為['小韓', '小柯', '小明', 7089143]那么i=列表s[1]='小柯',
造成了原列表s中的元素'小韓'被跳過,以此類推就出現了上述兩種疑問。
那怎么解決上述問題呢?下面我簡單介紹兩種方法(其實有很多方法,這里我只簡單搞兩種)

問題解決:
1、倒序

2、in 函數

 

 

clear():刪除列表所有元素

 

 
       


免責聲明!

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



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