gpt4 book ai didi

python - 如何以给定的格式反转这本字典?

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:07 25 4
gpt4 key购买 nike

我想转换这个:

d={'move': ['liikuttaa'], 'hide': ['piilottaa', 'salata'], 'six': ['kuusi'], 'fir': ['kuusi']}

进入这个:

{'liikuttaa': ['move'], 'piilottaa': ['hide'], 'salata': ['hide'], 'kuusi': ['six', 'fir']}

基本上是把这本字典倒过来。新字典的值也应该是列表形式,如图所示。

我已经尝试过使用 zip 函数,通过 (v,k) 反转,但每次我都会得到同样的错误:“不可散列的类型列表”。

def reverse_dictionary(d):    
reverse=list(zip(d.values(),d.keys()))
return reverse

输出应该是这样的:

{'liikuttaa': ['move'], 'piilottaa': ['hide'], 'salata': ['hide'], 'kuusi': ['six', 'fir']}

最佳答案

您可以使用 defaultdict使用列表:

from collections import defaultdict
from pprint import pprint

d = {'move': ['liikuttaa'],
'hide': ['piilottaa', 'salata'],
'six': ['kuusi'],
'fir': ['kuusi']}

result = defaultdict(list)

for key, values in d.items():
for value in values:
result[value].append(key)

pprint(dict(result))

输出:

{'kuusi': ['fir', 'six'],
'liikuttaa': ['move'],
'piilottaa': ['hide'],
'salata': ['hide']}

或者你可以使用普通的 dictsetdefault :

result = {}

for key, values in d.items():
for value in values:
result.setdefault(value, []).append(key)

关于python - 如何以给定的格式反转这本字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com