Python列表元素刪除和remove()方法詳解
刪除列表中元素的方法有三種:
1. del命令
使用del命令能夠刪除列表中指定位置上的元素,也可以刪除整個列表。
2. pop( )方法
使用列表的pop()方法能夠刪除并返回列表指定位置(默認(rèn)為最后一個位置)的元素。
3. remove方法
使用列表的remove()方法能夠刪除列表中首次出現(xiàn)的指定元素,如果列表中不存在該元素則拋出異常。有的時候可能需要刪除列表中某一大量重復(fù)的數(shù)據(jù),我們很容易就會想到列表的remove()方法,例如:
x=[1,2,1,2,1,2,1,2]y=[1,1,2,1,2,1,2,1,1,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)
結(jié)果:
List_1= [2, 2, 2, 2] List_2= [2, 2, 2, 1, 1, 2]
但是當(dāng)我們在具體實現(xiàn)時很可能會遇到意想不到的錯誤,代碼有的時候能夠達到預(yù)期的刪除所有重復(fù)元素的效果,有的時候只能刪除部分重復(fù)元素,如上例所示。比較兩個列表,發(fā)現(xiàn),列表x中所有的1都是不相鄰的,列表y中有的1是相鄰的。出現(xiàn)以上問題的原因在于,列表的內(nèi)存自動管理功能,在刪除列表中的元素時,python會自動對列表內(nèi)存進行收縮,并移動列表中的元素以保證元素之間沒有間隙,所以使用“循環(huán)+remove()方法”來刪除列表中某一重復(fù)元素時,如果存在相鄰的該元素,在刪除前面一個元素后,后一個元素會被移動到剛被刪除的這個元素的位置,這樣這個元素就“躲過了刪除”
對于以上問題代碼可以做如下修改:
x=[1,2,1,2,1,2,1,2]y=[1,1,2,1,2,1,2,1,1,1,2]for i in x: if i==1: x.remove(i)print('List_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)
輸出結(jié)果:
List_1= [2, 2, 2, 2] List_2= [2, 2, 2, 2]
總結(jié)
到此這篇關(guān)于Python列表元素刪除和remove()方法詳解的文章就介紹到這了,更多相關(guān)Python列表元素刪除和remove()方法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ajax請求后臺得到j(luò)son數(shù)據(jù)后動態(tài)生成樹形下拉框的方法2. phpstudy apache開啟ssi使用詳解3. JSP之表單提交get和post的區(qū)別詳解及實例4. Xml簡介_動力節(jié)點Java學(xué)院整理5. 詳解瀏覽器的緩存機制6. .Net Core和RabbitMQ限制循環(huán)消費的方法7. jsp實現(xiàn)登錄驗證的過濾器8. jsp文件下載功能實現(xiàn)代碼9. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享10. 存儲于xml中需要的HTML轉(zhuǎn)義代碼
