这是我得到的字典:
dict1 = {'A': 1, 'E': 1, 'I': 2, 'O': 0, 'U': 0}
,我想将键值对设为相反,所以我使用了:
opp_dict1 = {v: k for k, v in dict1.items()}
我得到:
{1: 'E', 2: 'I', 0: 'U'}
我如何获得:
{1: ['A', 'E'], 2: ['I'], 0: ['O', 'U']}
谢谢...。我很困惑
答案 0 :(得分:0)
您可以尝试以下方法吗?
opp_dict1 = {}
for k, v in dict1.items():
if v in opp_dict1:
opp_dict1[v].append(k)
else:
opp_dict1[v] = [k]
输出:
{1: ['A', 'E'], 2: ['I'], 0: ['O', 'U']}
答案 1 :(得分:0)
这必须通过常规的for循环而不是理解来完成。下面进行反转。
dict1 = {'A': 1, 'E': 1, 'I': 2, 'O': 0, 'U': 0}
dict2 = {}
for k, v in dict1.items():
dict2.setdefault(v, []).append(k)
答案 2 :(得分:0)
请尝试使用defaultdict
,这意味着如果在字典中找不到密钥,则要创建您定义的默认项(例如KeyError
,{{1}),而不要抛出list
} ...)
int