Python列表理解一行

Python列表理解一行,python,list,list-comprehension,Python,List,List Comprehension,假设“a”是包含(例如)[2,4,2,3,3,3]的列表 for i in a: if a.count(i) == i: a.remove(i) 如何使用列表综合、lambda、filter或其他不同的方法将代码转换为一行。在对列表进行迭代时,切勿从列表中删除项目,迭代过程会出错,您将无法获得所需的结果 >>> [x for i, x in enumerate(a) if a.count(x) != x or a.index(x) != i] [4,

假设“a”是包含(例如)[2,4,2,3,3,3]的列表

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

如何使用列表综合、lambda、filter或其他不同的方法将代码转换为一行。

在对列表进行迭代时,切勿从列表中删除项目,迭代过程会出错,您将无法获得所需的结果

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

谢谢你的评论,但这不是我的意思。@HelpPleaseee然后澄清你的意思。例如,如果a是[2,3,3,2,4,4],那么输出将是:[2,3,3,4,4],因为只有2个元素作为N(两个元素中的两个元素)@HelpPleaseee,所以你实际上只想删除每个相关值中的一个,也就是说,我猜你不想要什么?在你的回答中,所有得到N个元素的值都被删除了,不仅仅是oneNo,我的目标是只删除得到N个数字的N个元素中的一个。例如,如果a是[2,3,3,2,4,4],那么输出将是:[2,3,3,4,4],因为只有2个得到N个元素作为N(2的两个元素)@HelpPleasee这类信息最适合你的问题。那么
N
到底是什么?你真的需要编辑你的问题,让它清楚你在问什么。你希望这是一个一行。。。为什么?这是家庭作业吗?