Python列表元素刪除和remove()方法詳解
阿新 • • 發佈:2021-01-05
刪除列表中元素的方法有三種:
1. del命令
使用del命令能夠刪除列表中指定位置上的元素,也可以刪除整個列表。
2. pop( )方法
使用列表的pop()方法能夠刪除並返回列表指定位置(預設為最後一個位置)的元素。
3. remove方法
使用列表的remove()方法能夠刪除列表中首次出現的指定元素,如果列表中不存在該元素則丟擲異常。有的時候可能需要刪除列表中某一大量重複的資料,我們很容易就會想到列表的remove()方法,例如:
x=[1,2,1,2] y=[1,2] for i in x: if i==1: x.remove(i) print("List_1=",x) for i in y: if i==1: y.remove(i) print("List_2=",y)
結果:
List_1= [2,2]
List_2= [2,2]
但是當我們在具體實現時很可能會遇到意想不到的錯誤,程式碼有的時候能夠達到預期的刪除所有重複元素的效果,有的時候只能刪除部分重複元素,如上例所示。比較兩個列表,發現,列表x中所有的1都是不相鄰的,列表y中有的1是相鄰的。出現以上問題的原因在於,列表的記憶體自動管理功能,在刪除列表中的元素時,python會自動對列表記憶體進行收縮,並移動列表中的元素以保證元素之間沒有間隙,所以使用“迴圈+remove()方法”來刪除列表中某一重複元素時,如果存在相鄰的該元素,在刪除前面一個元素後,後一個元素會被移動到剛被刪除的這個元素的位置,這樣這個元素就“躲過了刪除”
對於以上問題程式碼可以做如下修改:
x=[1,x) while y.count(1)>0://或者while 1 in y: for i in y: if i==1: y.remove(i) print("List_2=",y)
輸出結果:
List_1= [2,2]
總結
到此這篇關於Python列表元素刪除和remove()方法詳解的文章就介紹到這了,更多相關Python列表元素刪除和remove()方法內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!