Python列表理解一行

时间:2016-12-16 11:37:27

标签: python list list-comprehension

假设' a'是一个包含(例如)[2,4,2,3,3,3]

的列表
for i in a:
    if a.count(i) == i:
        a.remove(i)

如何使用list comprehenstion,lambda,filter或者不同的东西将代码转换为一行。

1 个答案:

答案 0 :(得分:2)

迭代时不要从列表中删除项目,迭代会搞砸,你将无法获得所需的结果。

>>> [x for i, x in enumerate(a) if a.count(x) != x or a.index(x) != i]
[4, 2, 3, 3]