Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将字典的键转换为字典的值列表?_Python_List_Dictionary - Fatal编程技术网

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

如何在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':'

如果值相同,我想将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':'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)