Я настраиваю скрипт, и мне нужно знать, есть ли указанное значение в моем словаре.
dict = {"1" : [1, 2, 3], "2" : [4, 5, 6]}
Дело в том, что я хочу проанализировать все списки из значений dict, но я не знаю, как мне это перевести.
Как я могу установить переменную в True
, если 5
находится в словаре?
Еще один тема, где можно найти решение.
Перебрать dict: Перебор словарей с использованием циклов for
Используйте ключевое слово in
for key, value in d.items():
if 5 in value:
print('5 in dict')
break
Используйте iteritems()
вместо items()
, если вы используете python2.
Действительно спасибо, работает! Если я хочу вернуть ключ, относящийся к этому значению, могу ли я просто вернуть ключ из цикла?
Да, вместо break
можно return key
Например, как я могу вернуть индекс ключа вместо ключа?
Во-первых, избегайте назначать имена встроенных функций, например dict
.
Следующее относится к вашему варианту использования:
mydict = {"1" : [1, 2, 3], "2" : [4, 5, 6]}
for key, vals in mydict.items():
if 5 in vals:
print('Dict analyzed')
Делаю это на своем телефоне в 2:30 ночи, потому что не могу уснуть, так что терпите меня за плохое форматирование.
if any(5 in x for x in mydict.values()):
print("dict analyzed")
Это один из изящных питонических способов сделать это. На высоком уровне вам нужно перебрать mydict.values()
, который предоставляет итерацию значений mydict
(dict
состоит из пар ключ-значение.) Если одно из них содержит 5, то выведите «dict analysis».
Функция any
, которую я использовал, — это синтаксический сахар; заметьте, идея высокого уровня остается прежней.
Возможный дубликат Получить ключ по значению в словаре