【发布时间】:2012-09-22 19:15:48
【问题描述】:
有没有办法在 Python 中生成仅包含唯一项的列表推导式?
我最初的想法是使用这样的东西:
new_items = [unicode(item) for item in items]
但是,我后来意识到我需要省略重复的项目。所以我最终得到了这个丑陋的怪物:
unique_items = []
for item in items :
unicode_item = unicode(item)
if unicode_item not in unique_items :
unique_items.append(unicode_item)
现在这远没有简单的列表理解那么漂亮(和可读性)。那么,有没有办法让列表推导等效于上面的代码?
顺序也很重要,所以我不能只使用集合推导。
【问题讨论】:
-
有趣,我最初的想法是您可以在列表推导中进行过滤,但后来我意识到您需要访问您在过滤条件中创建的新列表。
-
如果订单很重要,我如何知道要使用哪个重复项目实例?第一个,最后一个,还是中间的一个?
-
@mgilson 经过快速检查,似乎这个问题的接受答案比链接问题的接受答案更有效。
标签: python list list-comprehension