假设' a'是一个包含(例如)[2,4,2,3,3,3]
的列表for i in a:
if a.count(i) == i:
a.remove(i)
如何使用list comprehenstion,lambda,filter或者不同的东西将代码转换为一行。
答案 0 :(得分:2)
迭代时不要从列表中删除项目,迭代会搞砸,你将无法获得所需的结果。
>>> [x for i, x in enumerate(a) if a.count(x) != x or a.index(x) != i]
[4, 2, 3, 3]