Skip to main content
 首页 » 编程设计

python之合并列表字典中具有相同值的键

2025年05月04日24小虾米

我有一本列表字典,如果键有重复值,我只想获取一个键。例如:

dic1 = {8: [0, 4], 1: [0, 4], 7:[3], 4:[1, 5], 11:[3]} 

结果字典

dic2 = {1: [0, 4], 7:[3], 4:[1, 5]} 

策略是反转键中的值,这将变得唯一,然后再次将键反转为它们各自的值:

dic2 = {y: x for x, y in dic.items()} 

但是出现错误,因为列表不是可哈希的。如果键值相同,我该怎么做才能获得只有一个键的字典?

请您参考如下方法:

将列表转换为可散列的元组。

dic2 = {tuple(y): x for x, y in dic.items()} 

如果你愿意,你可以在之后转换回列表:

result = {v:list(k) for k,v in dic2.items()}