首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多准则的python列表去重

基于多准则的python列表去重
EN

Stack Overflow用户
提问于 2014-11-06 13:42:03
回答 2查看 598关注 0票数 2

我有一个列表: mylist = ('Item A','CA','10'),('Item B','CT','12'),('Item A','CA','14'),('Item A','NH','10')

我想删除基于第1列和第2列的重复项。因此,我想要的输出是:

代码语言:javascript
复制
[('Item A','CA','10'),('Item B','CT','12'),('Item A','NH','10')]

我真的不知道该怎么做,所以我还没有发布任何代码,但我只是在寻求一些帮助:)

EN

回答 2

Stack Overflow用户

发布于 2014-11-06 14:14:49

使用字典。另一个答案是好的。为了实现多样性,这里有一个单独的表达式,它将给出uniq'd列表(尽管元素的顺序没有被保留)。

代码语言:javascript
复制
{ tuple(item[0:2]):item for item in mylist[::-1] }.values()

这将使用元素0和1作为键从mylist的元素创建一个dict (隐式删除重复项)。因为mylist是以相反的顺序迭代的,所以具有重复键的最后一个元素(元素0和1)将保留在dict中。

票数 1
EN

Stack Overflow用户

发布于 2014-11-06 13:57:25

Dict键可以是任何hashable类型。创建一个dict,将每一项的前两列作为关键字,并仅在以前从未见过这些列的情况下添加到unique

代码语言:javascript
复制
unique = {}
for item in mylist:
    if item[0:2] not in unique:
        unique[item[0:2]] = item
print unique.values()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26772459

复制
相关文章

相似问题

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