Python 如何删除不同元组中的相同元素

Python 如何删除不同元组中的相同元素,python,numpy,dictionary,tuples,Python,Numpy,Dictionary,Tuples,我有一个这样的字典,如果元组中已经出现了第一项,我想删除元素 原始词典: {85: [(88, 1), (89, 2), (89, 3), (89, 4)], 86: [(77, 1)], 112: [(35, 1), (36, 2)], 114: [(55, 1), (55, 2), (55, 3), (55, 4), (55, 5), (55, 6), (55, 7), (55, 8), (55, 9), (55, 10), (55, 11), (55, 12), (55, 13),

我有一个这样的字典,如果元组中已经出现了第一项,我想删除元素

原始词典:

{85: [(88, 1), (89, 2), (89, 3), (89, 4)], 
86: [(77, 1)], 
112: [(35, 1), (36, 2)], 
114: [(55, 1), (55, 2), (55, 3), (55, 4), (55, 5), (55, 6), (55, 7), (55, 8), (55, 9), (55, 10), (55, 11), (55, 12), (55, 13), (55, 14), (55, 15), (55, 16), (55, 17), (55, 18), (55, 19), (55, 20)], 
122: [(72, 1), (72, 2), (72, 3), (72, 4), (72, 5), (72, 6), (72, 7), (72, 8)]}
目标:

{85: [(88, 1), (89, 2)], 
86: [(77, 1)],
112: [(35, 1), (36, 2)], 
114: [(55, 1)], 
122: [(72, 1)]}

也许这个解决方案不是有效的,但它很短。其思想是向后迭代每个列表并将其放入dict中,因此如果某些键相同,则只留下最后一个键

target = {k: list(dict(v[::-1]).items())[::-1] for k, v in d.items()}

那么,您想分别处理每个列表吗?那么,它们在字典中这一事实其实并不相关——只需编写可以处理一个列表的代码,然后迭代
.values()
。这可能有点太聪明了——这不仅滥用了
dict
的当前实现维护顺序这一事实,但事实上,列表元素是2元组,
dict
可以从中构造。另一方面,数据看起来像这样的事实,再加上OP希望以这种特定方式消除重复数据的事实,表明可能数据本来应该是
dict
s:)