Python 如何测试dict中是否有三个键之一?
如何测试Python 如何测试dict中是否有三个键之一?,python,dictionary,contains,Python,Dictionary,Contains,如何测试a或b或c中的任何一个是否是dict中的键 Python中有一些简短的方法吗 有两把钥匙,我可以用 if a or b in my_dict.keys(): 如何使用三个键执行相同操作?您可以使用来检查任何条件是否为True。假设您的dict是: my_dict = { 'x': 1, 'y': 2, 'a': 3 # `a` key in dict } 要检查字典键中是否存在任何项,您可以执行以下操作: >>> values_to_check =
a
或b
或c
中的任何一个是否是dict中的键
Python中有一些简短的方法吗
有两把钥匙,我可以用
if a or b in my_dict.keys():
如何使用三个键执行相同操作?您可以使用来检查任何条件是否为True
。假设您的dict
是:
my_dict = {
'x': 1,
'y': 2,
'a': 3 # `a` key in dict
}
要检查字典键中是否存在任何项,您可以执行以下操作:
>>> values_to_check = ['a', 'b', 'c'] # list of value to check
# v You do not need `.keys()` as by default `in` checks in keys
>>> any(item in my_dict for item in values_to_check)
True
警告:
如果my_dict.keys()中的a或b不符合您的想法:
。例如:
>>> 'a' or 'b' in {'c': 'd', 'e': 'f'}.keys()
'a'
实际发生的情况是:首先,计算'a'
,如果是,则返回而不检查任何其他内容。只有当'a'
为“falsy”时,'b'
(并且只有'b'
)才会根据dict的键进行检查
如果在代码中添加一些括号,Python的实际功能就会更加清晰:
if (a) or (b in my_dict.keys()):
实际上,您必须以这种风格编写两值版本的代码:
if a in my_dict.keys() or b in my_dict.keys():
# ...
关于您的实际问题:
要测试任意数量的值(包括两个),您有两个选择:
if any(x in my_dict.keys() for x in (a, b, c)):
# ...
或
你喜欢哪一个很大程度上取决于个人品味。。。尽管如果您需要实际的
True
或False
结果,而不是在if
语句中使用的“truthy”值,则需要any(…)
解决方案。否,您不能使用该代码;它根本不能满足您的需要。或者更简洁地说-如果我的dict.keys()&values\u to\u check
。。。(或者如果在Python 2.x中我的dict.viewkeys()和values\u to\u check
)
if my_dict.keys() & {a, b, c}: # replace keys with viewkeys in Python 2
# ...