我想检查一下这样的事情:
if ('key1' or 'key2') in my_dictionary:
dosmth()
我该怎么做?上面的代码似乎不起作用。它似乎只考虑'key1',因此语法必定是错误的。
答案 0 :(得分:5)
那是因为'key1' or 'key2'
部分首先会被评估。它将始终生成key1
:
>>> 'key1' or 'key2'
'key1'
相反,你的意思是:
if 'key1' in my_dictionary or 'key2' in my_dictionary:
要将问题扩展为N键,请使用any()
:
keys = ['key1', 'key2', 'key3']
if any(key in my_dictionary for key in keys):
# ...