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

0 python dictionary tuples numpy

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

原字典:

{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)]}
Run Code Online (Sandbox Code Playgroud)

目标:

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

V. *_*rat 6

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

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