为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中将字典的键转换为字典的值列表?

如何在Python中将字典的键转换为字典的值列表?

UYOU 2023-12-29 16:56:43
如果值相同,我想将字典转换为字典列表。我有下面的示例数据:my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}现在我想将上面的字典转换为以下输出:my_dict={'Randy':['Book 2'],'Martha':['Book 1','Book 5']}我如何在Python中做到这一点?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这应该可以帮助你:


my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}


final_dict = {}


for key in my_dict.keys():

    final_dict.setdefault(my_dict[key],[]).append(key)

    

print(final_dict)

输出:


{'Martha': ['Book 1', 'Book 5'], 'Randy': ['Book 2']}


查看完整回答
反对 回复 2023-12-29
?
桃花长相依

TA贡献1860条经验 获得超8个赞

使用 acollections.defaultdict按值对键进行分组:


from collections import defaultdict


my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}


d = defaultdict(list)

for k, v in my_dict.items():

    d[v].append(k)


print(d)

输出:


defaultdict(<class 'list'>, {'Martha': ['Book 1', 'Book 5'], 'Randy': ['Book 2']})


查看完整回答
反对 回复 2023-12-29
?
长风秋雁

TA贡献1757条经验 获得超7个赞

您可以使用defaultdict可用的功能。代码如下:

from collections import defaultdict


my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}

new_dict = defaultdict(list)

for i in my_dict:

    new_dict[my_dict[i]].append(i)


new_dict = dict(new_dict)

print(new_dict)


查看完整回答
反对 回复 2023-12-29
  • 3 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信