Python 列表理解,具有独特的项目

标签 python list list-comprehension

有没有办法在 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)

现在这远不如简单的列表理解那么漂亮(和可读)。那么,有没有办法让列表推导等价于上面的代码呢?

顺序也很重要,所以我不能只使用集合理解。

最佳答案

嗯,没有有序集,但我们可以滥用 OrderedDict:

from collections import OrderedDict
t = "never gonna give you up"
OrderedDict.fromkeys(t).keys()

给予:

['n', 'e', 'v', 'r', ' ', 'g', 'o', 'a', 'i', 'y', 'u', 'p']

关于Python 列表理解,具有独特的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681753/

相关文章:

python - 在 Python 列表理解中是否可以访问项目索引?

python - 使用列表理解来标记两个列表共有的数据

python - 如何通过 Flask 应用程序在 Python 中使用 GDAL 打开远程文件

C 列表类程序

python - 通过 Pandas 中的坐标检查点是否在 3D Box 中

python - 计算以列表形式存储的项目的价格

python - 向 csv 文件添加标题

python - 列表理解创建了太多级别的嵌套列表

python - Python中的抽象方法

python - 如何使用python获取JSON的二级 key ?