首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从元组列表中删除重复成员

从元组列表中删除重复成员
EN

Stack Overflow用户
提问于 2010-10-25 01:02:03
回答 2查看 2K关注 0票数 0

这个问题可能有相似之处,但我的情况有点不同。我试着根据我的问题调整这些答案,但做不到。所以事情是这样的:我有这个列表:

例如,[(['c', 'a', 'b'], 10), (['c', 'a', 'b'], 9),(['h','b'],2)]

我希望通过保留与较大数字相关联的元组来删除此列表中的重复项。因此,列表应如下所示:

[(['c', 'a', 'b'], 10),(['h','b'],2)]

有谁可以帮我?内部列表中项目的顺序非常重要。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-25 01:10:35

代码语言:javascript
运行
复制
>>> lst = [(['c', 'a', 'b'], 10), (['c', 'a', 'b'], 9),(['h','b'],2)]
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i, j in lst:
    d[tuple(i)] = max(d[tuple(i)], j)          # assuming positive numbers


>>> d
defaultdict(<class 'int'>, {('h', 'b'): 2, ('c', 'a', 'b'): 10})
票数 3
EN

Stack Overflow用户

发布于 2010-10-25 01:18:49

如果如您的示例所示,项已按数字排序(在本例中为反向排序),则可以执行以下操作:

代码语言:javascript
运行
复制
d = dict(reversed(lst))
list(d.iteritems())

dict()函数的默认行为是存储最后看到的键的值。因此,如果它们以逆序排序,则在逆序迭代时最后看到的值将是最大的。否则,使用@SilentGhost`s的answer

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

https://stackoverflow.com/questions/4009304

复制
相关文章

相似问题

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