python中remove函數(shù)的踩坑記錄
在python的使用過程中,難免會遇到要移除列表中對象的要求。這時可以使用remove函數(shù)。
對于python中的remove()函數(shù),官方文檔的解釋是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一個匹配的元素。
語法
list.remove()
參數(shù)
obj 參數(shù):從列表中刪除的對象的索引
返回值
刪除后不會返回值
常見用法:a = [1,2,3,4],a.remove(1),然后a就是[2,3,4];對于a = [1,1,1,2],其結果也是[1,1,2],這是最基本的用法。
但是對于下面這個:
a = [1,2,3,4]for i in a: a.remove(i)# 結果a = [2,4]
或者說
a = [1,1,1,1,1,2]for i in a: a.remove(1) #結果a = [1,1,2]
是不是跟想象中的不一樣,其主要原因如下(^表示當前迭代器位于列表中的位置):
a = [ 1 , 2 , 3 , 4]
假設此時 ^
默認情況下只想第一個元素,然后執(zhí)行a.remove(1),然后下標向后移動,列表因為刪除了元素,后面的向前移動,如下:
a = [ 2 , 3 , 4]
此時 ^
此時執(zhí)行a.remove(3),重復上面的移動
a = [ 2 , 4]
此時 ^
因為已經到了列表的邊界,故結束遍歷,并返回`a = [2,4]`。
解決辦法:# 一下為解決辦法之一d = dict(zip(range(len(a)), a))[v for k, v in d.items() if v != value]總結:
關于python列表的remove操作涉及了列表下標的移動以及列表中元素的移動,涉及了一些關于數(shù)組的知識。其核心問題就是前面所說的。
到此這篇關于python中remove函數(shù)的踩坑記錄的文章就介紹到這了,更多相關python中remove函數(shù)坑內容請搜索好吧啦網以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
