如何在python中将字典的键转换为字典的值列表?
如果值相同,我想将dictionary转换为dictionary列表。我有一个样本数据如下:如何在python中将字典的键转换为字典的值列表?,python,list,dictionary,Python,List,Dictionary,如果值相同,我想将dictionary转换为dictionary列表。我有一个样本数据如下: my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'} 现在,我想将上述词典转换为以下输出: my_dict={'Randy':['Book 2'],'Martha':['Book 1','Book 5']} 如何在python中实现这一点?这将有助于您: my_dict={'Book 1':'Martha','Book 2':'
my_dict={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}
现在,我想将上述词典转换为以下输出:
my_dict={'Randy':['Book 2'],'Martha':['Book 1','Book 5']}
如何在python中实现这一点?这将有助于您:
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']}
使用
collections.defaultdict
按值对键进行分组:
从集合导入defaultdict
我的字典={'Book 1':'Martha','Book 2':'Randy','Book 5':'Martha'}
d=默认DICT(列表)
对于我的目录项()中的k,v:
d[v].附加(k)
印刷品(d)
输出:
{'Martha': ['Book 1', 'Book 5'], 'Randy': ['Book 2']}
defaultdict(,{'Martha':['book1','book5'],'Randy':['book2']})
您可以使用可用的功能。代码如下:
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)