【发布时间】:2019-03-21 08:47:22
【问题描述】:
我有这本以元组为键的字典。所有这些元组都有两个值,我将使用字母作为值来保持简单,例如元组 (a, b)。
这两个值的顺序无关紧要,这意味着 (a, b) 本质上与 (b, a) 相同(或有点重复)。所以我试图写一些东西来删除所有这些冗余的键值对,但它不起作用,我严重坚持下去。我确信这只是我忽略的一些简单的事情,尽管我无法弄清楚。
我认为这会起作用:
def undupe_overlaps(overlaps):
dupes = []
for key, item in overlaps.items():
if (key[1], key[0]) in overlaps:
dupes.append((key[1], key[0]))
for item in dupes:
overlaps.pop(item)
return overlaps
overlaps 是字典,我使用 list dupes 因为你不能从字典中删除东西并同时循环它。任何帮助或提示将不胜感激:)
【问题讨论】:
-
也许
sort元组元素? -
在这种情况下,您应该使用
frozensets而不是元组作为键,您将免费获得此属性。
标签: python python-3.x dictionary tuples