python词典中的多个键是可能的吗?

FEd*_*ini 5 python dictionary key

我想在python中构建一个字典,其中不同的键引用相同的元素.我有这本字典:

persons = {"George":'G.MacDonald', "Luke":'G.MacDonald', "Larry":'G.MacDonald'} 
Run Code Online (Sandbox Code Playgroud)

键指的是一个相同的字符串,但字符串在程序中有不同的内存位置,我想制作一个字典,其中所有这些键引用相同的元素,这可能吗?

Bak*_*riu 5

你可以这样做:

import itertools as it

unique_dict = {}
value_key=lambda x: x[1]
sorted_items = sorted(your_current_dict.items(), key=value_key)
for value, group in it.groupby(sorted_items, key=value_key):
    for key in group:
        unique_dict[key] = value
Run Code Online (Sandbox Code Playgroud)

这会将您的字典转换为字典,其中任何类型的相同值(但可比较)都是唯一的.如果您的值不具有可比性(但可以清除),您可以使用临时值dict:

from collections import defaultdict
unique_dict = {}
tmp_dict = defaultdict(list)

for key, value in your_current_dict.items():
    tmp_dict[value].append(key)

for value, keys in tmp_dict.items():
    unique_dict.update(zip(keys, [value] * len(keys)))
Run Code Online (Sandbox Code Playgroud)