这是我得到的字典: 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']}谢谢....我很困惑
3 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
你可以试试以下方法:
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']}
慕丝7291255
TA贡献1859条经验 获得超6个赞
这必须通过常规 for 循环而不是理解来完成。下面进行反转。
dict1 = {'A': 1, 'E': 1, 'I': 2, 'O': 0, 'U': 0}
dict2 = {}
for k, v in dict1.items():
dict2.setdefault(v, []).append(k)
墨色风雨
TA贡献1853条经验 获得超6个赞
尝试使用defaultdict,这意味着如果在字典中找不到键KeyError,则创建您定义的默认项(如list,int...),而不是抛出
from collections import defaultdict
d = defaultdict(list)
for k,v in dict1.items():
d[v].append(k)
添加回答
举报
0/150
提交
取消
