gpt4 book ai didi

python - 如何在 Python 中反转字典(其值是列表)?

转载 作者:太空狗 更新时间:2023-10-29 17:27:18 24 4
gpt4 key购买 nike

我想编写一个函数,它接收字典作为输入参数并返回输入字典的反向,其中原始字典的值用作返回字典的键,原始字典的键用作返回字典的值如下所述:

dict = {'Accurate': ['exact', 'precise'], 
'exact': ['precise'],
'astute': ['Smart', 'clever'],
'smart': ['clever', 'bright', 'talented']}

dict = {'precise': ['accurate', 'exact'], 
'clever': ['astute', 'smart'],
'talented': ['smart'],
'bright': ['smart'],
'exact': ['accurate'],
'smart': ['astute']}

返回字典中的值列表应按升序排序。大小写无关紧要。这意味着所有单词都应转换为小写字母。例如,单词“Accurate”在原始字典中是大写的,但在返回的字典中它是用所有小写字母书写的。

#My code is:
from collections import defaultdict
def reverse_dictionary(input_dict):
d = defaultdict(list)
for v,k in input_dict.items():
d[k].append(v)
return d

但是它返回了这个错误:

Error in evaluating function:
TypeError at line 6
unhashable type: 'list'

最佳答案

你可以像这样非常简单地做到这一点:

newdict = {}
for key, value in olddict.items():
for string in value:
newdict.setdefault(string, []).append(key)

关于python - 如何在 Python 中反转字典(其值是列表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945473/

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