0
我想使用一行删除列表中两个值的所有出现。我尝试了filter
+ lambda
方法和列表理解,但它不按我期望的方式工作。如何删除列表中两个值的所有出现?
喜欢的东西:
s2 = [0, 0, 3, 11, 14, 17, 18, 18]
# I want to remove all 0 and 18 from s2 list
# i.e. I want output: s2_filter = [3, 11, 14, 17]
s2_filter = filter (lambda a: a != 0 or 18, s2)
>>> s2 = [0, 0, 3, 11, 14, 17, 18, 18] # not what I'm expecting
s2_filter = [i for i in s2 if i != 0 or 18]
>>> s2 = [0, 0, 3, 11, 14, 17, 18, 18] # not what I'm expecting
我想有一些错误的or
,但我想不出我应该怎么正确地写这个。
你能帮忙吗?
不好的例子,我将修改它。有时它们只发生一次,有时不止一次。 – francoiskroll
不,我!= 0,我!= 18'与'和... –
或'我不在(0,18)' –