如何选择python字典中的所有键?

时间:2014-12-08 16:22:20

标签: python dictionary conditional-statements

所以我试着编写一个if语句来检查给定的输入是否不在字典[“”]中;

但是我没有找到一种方法来选择所有键来执行此操作,否则我将不得不重写大约20个键的if语句,这将是低效的

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 个答案:

答案 0 :(得分:4)

如果要检查每个键值,只需检查所有值:

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

如果您将iterables作为值:

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

如果我假设input_a等于2并且某些键值等于[1,2,3],我会使用任何一个,那么它应该返回True

答案 1 :(得分:2)

all解决方案是最好的。我只想添加一个只为代码添加一行的答案:

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

答案 2 :(得分:0)

您的问题是您试图对代码过于具体。您只需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!"

答案 3 :(得分:0)

字典= {'名称' :' Hari'' age' :' 24'}

value ='地址'

如果值不在dictionary.keys()中:

    print ('Key not found')