【发布时间】:2011-08-04 01:01:42
【问题描述】:
仅当当前迭代的元素不在列表中时,我才必须将元素附加到列表中。
>>> l = [1, 2]
>>> for x in (2, 3, 4):
... if x not in l:
... l.append(x)
...
>>> l
[1, 2, 3, 4]
对
>>> l = [1, 2]
>>> [l.append(i) for i in (2, 3, 4) if i not in l]
[None, None]
>>> l
[1, 2, 3, 4]
列表推导给出的结果是我想要的,只是返回的列表没用。这是列表推导的好用例吗?
迭代是一个很好的解决方案,但我想知道是否有更惯用的方法来做到这一点?
【问题讨论】:
-
由于某种原因,我无法再次编辑我的问题。我忘了说我关心元素的顺序。
-
在日常使用中,我必须在建议的解决方案之间进行调解。 Gerrat's 紧凑,TokenMacGuy's 明确且快速,而 tyz's 位于中间,紧凑且快速,但不太直接。感谢您的精彩回答。我检查了 Gerrat 的答案,因为它更接近我的初衷。
标签: python list list-comprehension duplicates