首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一python中的列表

统一python中的列表
EN

Stack Overflow用户
提问于 2014-01-29 20:38:07
回答 2查看 129关注 0票数 1

到目前为止,我一直在使用这段代码从python中的列表中删除重复项:

my_list = list(set(my_list))

我现在有一个列表列表,我希望能够从列表列表中删除重复项。例如:

(['possible-duplicate', 'random-data'], ['possible-duplicate', 'random-data'], ['possible-duplicate', 'random-data'])

如果possible-duplicate是重复的,我想删除整个子列表。

这能办到吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 20:43:36

根据你的数据制作一本字典:

代码语言:javascript
复制
data = (['possible-duplicate', '12345'], 
        ['not-a-duplicate', '54321'],
        ['possible-duplicate', '51423'])
data_unique = dict(data)

结果是{'not-a-duplicate': '54321', 'possible-duplicate': '51423'},或者如果您喜欢一个元组列表,请使用date_unique.items(),这将为您提供[('not-a-duplicate', '54321'), ('possible-duplicate', '51423')]

或者在更一般的情况下,子列表有两个以上的元素,您可以使用

代码语言:javascript
复制
data_unique = dict((d[0], d) for d in data)

然后使用data_unique.values()收回“统一”列表。

票数 2
EN

Stack Overflow用户

发布于 2014-01-29 20:41:06

代码语言:javascript
复制
seen = set()

[sublist for sublist in my_list if sublist[0] not in seen and not seen.add(sublist[0])]

这也恰好维护了秩序,而list(set(...))却没有这样做。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21442117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档