Не находит элемент в словаре
Есть словарь:
categories = {"Products" : ['продукты', 'еда']}
И такой код:
categorie = input('Category:')
if categorie in categories:
print('pass')
else:
print('not found')
Проблема в том, что при вводе 'продукты' или 'еда' выводится сообщение 'not found', то есть такого элемента якобы нет
Ответы (2 шт):
Попробуйте заменить ваш if на такой:
if categorie in categories['Products']:
у вас же в словаре categories всего один ключ 'Products' и в его значении искомый список.
Если в словаре categories еще категории-ключи которые содержат соответствующие списки и надо найти вхождение в объединенный список всех категорий то можно сформировать единый список по всем категориям. Вот пример вашей программы:
categories = {"Products" : ['продукты', 'еда'], "Products2" : ['продукты2', 'еда2']}
allcat=[]
for categorie in categories:
allcat=allcat+categories[categorie]
categorie = input('Category:')
if categorie in allcat:
print('pass')
else:
print('not found')
Работать можно и с ключами и со значениями
categories = {"Products" : ['продукты', 'еда']}
# Проверить ключ
if "Products" in categories.keys():
print("Есть такой ключ")
# Проверить по значенимям
for value in categories.values():
if 'продукты' in value:
print("Есть такое значение")
# Или сразу по ключам и значениям
for key, value in categories.items():
print(f"ключ - {key} -> значение - {value}")
Применительно к вашему коду
categorie = input('Category:')
if categorie in categories.keys():
print('pass')
else:
print('not found')
Если вы ищете в значениях (из вопроса не очень понятно), тогда надо понимать, что внутри список и нужно спрашивать у него
categorie = input('Category:')
for value in categories.values():
if categorie in value:
print('pass')
else:
print('not found')