Как выбрать все ключи в словаре Python?

Поэтому я пытаюсь написать оператор if, который проверит, нет ли введенных данных в словаре [""];

Однако я не нашел способа выбрать все ключи, чтобы сделать это, иначе мне придется переписать оператор if примерно для 20 ключей, что было бы неэффективно

if input_a not in dictionary.values():
    print('hi')
if input_b not in dictionary.values():
    print('ho')

Это выведет ho и hi, если я введу значение, которое находится в словаре, или если у меня было значение, которого нет в словаре.

Однако, если я делаю:

if input_a not in dictionary["key1"]:
    print('hi')
if input_b not in dictionary["key2"]:
    print('ho')

Он будет печататься только если input_a или input_b находятся в этом конкретном ключе значений

Позвольте мне также сказать, что каждый ключ имеет несколько значений слов

4 ответа

Решение

Если вы проверяете каждое значение ключа, просто проверьте все значения:

if input_a not in dictionary.values():
        print('Sorry, try again')

Если у вас есть итерируемые значения:

if not any(input_a in  ele for ele in dictionary.values()):
        print('Sorry, try again')

Я использовал любой, как я полагаю, если input_a был равен 2 и значение некоторых ключей было равно [1,2,3] тогда он должен вернуться True,

all Решение самое лучшее. Я просто хочу добавить ответ, который только добавляет строку в ваш код:

for key in dictionary.keys():
    if input_a not in dictionary[key]:
        print('Sorry, try again')

dictionary={'name': 'Hari', 'age': '24'}

значение = "адрес"

если значение отсутствует в dictionary.keys():

    print ('Key not found')

Ваша проблема в том, что вы пытаетесь слишком конкретизировать свой код. Все, что тебе нужно if input_a not in dictionary: как так:

dict = {
'orange' : 'orange',
'apple' : 'red',
'tomato' : 'red',
}

dict2 = {
    'peach' : 'peach',
    'potato' : 'brown',
    'squash' : 'yellow',
    }

input_a = "apple"

if input_a not in dict:
    print "This isn't in dict!"
else:
    print "This is in dict!"

#Will print "This is in dict!"

if input_a not in dict2.values():
    print "This isn't in dict2 values!"
else:
    print "This is in dict2 values!"

#Will print "This isn't in dict2 values!"
Другие вопросы по тегам