python 刪除list中某所有元素

2021-09-09 08:04:18 字數 836 閱讀 2621

突然記起來一年前剛入行時,領導面試我時提的問題,刪除list中所有等於某個值的元素

比如  刪除 [1,2,3,4,1,2,3,4,1,3,4] 中所有的2元素

刪除元素常用 remove, pop 方法,

remove可以直接刪除某個值:

list.remove(1)
但是每次只能刪除第乙個,且如果list中不存在這個值則會丟擲異常。

pop可以根據索引來刪除:

list.pop(2)
但是同樣在此處不適用,因為 pop 都是直接作用於list物件,

當我們在遍歷list中,直接刪除會對遍歷有影響。

當時我給出的方案是建立乙個新list,遍歷原list,如果不等於這個值,則放入新list中。。。

所以落下乙個 雖然不會,但是敢想 的評價。。

當時事後回想,覺得應該是有兩種方案:

1.死迴圈無限remove,遇到異常則return

2.從後向前遍歷pop,遇到異常return

但是現在想起來,完全可以有更好的方法:

filter函式

def remove_item(n):

return n != 1

aaa = [1,2,3,5,6,8,9,5,3,1]

print list(filter(remove_item, aaa))

同樣,用於去除list中的空字串或者none同樣好用:

new_list = list(filter(none, list))

python 中 list 的 刪除等問題

python 中 list 的 不常見問題 1.list 問題 最近發現乙個list賦值給另乙個,並不像值操作那樣,其實是位址共享的,就是使用remove 函式後原先的值也會被刪掉。list 1,2,3,4,5 l list l.remove 1 print l,list 結果l 2,3,4,5 l...

python中List新增 刪除元素的幾種方法

一 python中list新增元素的幾種方法 2.extend 將乙個列表中每個元素分別新增到另乙個列表中,只接受乙個引數 extend 相當於是將list b 連線到list a上。list1 a b c lis2 list2.extend list1 0 list1 2 list1 a c 3....

Python中刪除list帶有某些特徵元素的方法

看了一些刪除list帶有某些特徵元素的帖子,大多都是用remove,pop,del來解決,其實可以換個思路來寫,就是找到你需要的元素,再給它們重新放入列表中。如下,想要刪除帶有description特徵的元素,保留其他所有元素。test list eth trunk20 description py...