Я хотел бы написать функцию, которая получает словарь в качестве входного аргумента и возвращает обратную ссылку словаря ввода, где значения исходного словаря используются как ключи для возвращаемого словаря, а ключи исходного словаря используются как значение для возвращаемого словаря, как описано ниже:
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'