@DK1998

Как можно исправить ошибку?

Пытаюсь написать код по заданным заданиям:
1)Отсортировать в алфавитном порядке словарь по названию болезни.
2) Определить количество лекарств от гриппа.
3)Вывести лекарства, на букв ‘н’ для лечения насморка.

Помогите Пожалуйста Разобраться, Заранее Спасибо!
Мой код:
dict_Apteka = {
    {'Lekartsva ot Nasmorka':('Nazivin','Ksimelin', 'Nazolneks','Pinosol','Nazol') },
    {'Lekartsva it Golovnoy Boli':('Spazmolgon','Ibuprofen','Nurofen')},
    {'Lekartsva ot Diarei':('Neosmektin','Smekta','Dioktab')},
    {'Lekartsva ot Otravleniya':('Sorbeks','Atoksil','Enterosgel')},
    {'Lekarstva ot Kahlya':('Bromgeksin','Lazolvan','Bronxolitin')},
    {'Lekarstva ot Temperaturi':('Rinza','Aspirin','Ibuklin')},
    {'Lekarstva ot Grippa':'Teraflu'}  # Создали Словарь "Аптека"

}

dict_Apteka["Лекарство от Боли в Горле"] = " Гексорал , Исла , Тантум Верде" #Добавление Элемента
del dict_Apteka["Лекарство от Боли в Горле"]    #Удаление Элемента

for key, value in dict_Apteka.items():
    print("{0}: {1}".format(key, value))    # Просмотр всего словаря.

kluc=list(dict_Apteka.keys())
kluc.sort()
print(kluc)

grip=dict_Apteka[7]
print("Кол-во лекарств от Гриппа:",(len(grip)))

и вот такая ошибка:
{'Lekarstva ot Grippa':'Teraflu'}  # Создали Словарь "Аптека"
TypeError: unhashable type: 'dict'

Спасибо за помощь!
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
donko1
@donko1
Изучаю python
В классические словари пайтон нельзя вставлять другие словари напримерsome_name = {{}}
Тоже выведет вашу ошибку. Может вам поможеn defaultfict из модуля collections
Правильный код всей программы
from collections import defaultdict

l = [{'Lekartsva ot Nasmorka':('Nazivin','Ksimelin', 'Nazolneks','Pinosol','Nazol') },
    {'Lekartsva it Golovnoy Boli':('Spazmolgon','Ibuprofen','Nurofen')},
    {'Lekartsva ot Diarei':('Neosmektin','Smekta','Dioktab')},
    {'Lekartsva ot Otravleniya':('Sorbeks','Atoksil','Enterosgel')},
    {'Lekarstva ot Kahlya':('Bromgeksin','Lazolvan','Bronxolitin')},
    {'Lekarstva ot Temperaturi':('Rinza','Aspirin','Ibuklin')},
    {'Lekarstva ot Grippa':'Teraflu'}]

d = defaultdict(list)

for item in l:
    for a, b in item.items():
        d[a].append(b)

d["Лекарство от Боли в Горле"] = " Гексорал , Исла , Тантум Верде" #Добавление Элемента
del d["Лекарство от Боли в Горле"]    #Удаление Элемента

for key, value in d.items():
    print("{0}: {1}".format(key, value))    # Просмотр всего словаря.

kluc=list(d.keys())
kluc.sort()
print(kluc)

grip=d['Lekarstva ot Grippa']
print("Кол-во лекарств от Гриппа:",(len(grip)))

Код создание словаря defaultdict
from collections import defaultdict

l = [{'Lekartsva ot Nasmorka':('Nazivin','Ksimelin', 'Nazolneks','Pinosol','Nazol') },
    {'Lekartsva it Golovnoy Boli':('Spazmolgon','Ibuprofen','Nurofen')},
    {'Lekartsva ot Diarei':('Neosmektin','Smekta','Dioktab')},
    {'Lekartsva ot Otravleniya':('Sorbeks','Atoksil','Enterosgel')},
    {'Lekarstva ot Kahlya':('Bromgeksin','Lazolvan','Bronxolitin')},
    {'Lekarstva ot Temperaturi':('Rinza','Aspirin','Ibuklin')},
    {'Lekarstva ot Grippa':'Teraflu'}]

d = defaultdict(list)

for item in l:
    for a, b in item.items():
        d[a].append(b)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы