我想做的事情是:
foo = {
'foo': 1,
'zip': 2,
'zam': 3,
'bar': 4
}
if ("foo", "bar") in foo:
#do stuff
我如何检查是否foo和酒吧都在dict foo?
我想做的事情是:
foo = {
'foo': 1,
'zip': 2,
'zam': 3,
'bar': 4
}
if ("foo", "bar") in foo:
#do stuff
我如何检查是否foo和酒吧都在dict foo?
当前回答
>>> if 'foo' in foo and 'bar' in foo:
... print 'yes'
...
yes
Jason,()在Python中不是必需的。
其他回答
你可以这样做:
>>> if all(k in foo for k in ("foo","bar")):
... print "They're there!"
...
They're there!
这应该可以工作:
if all(key in foo for key in ["foo","bar"]):
# do stuff
pass
提示:
在all()中使用方括号来创建一个列表推导式:
if all([key in foo for key in ["foo","bar"]]):
不仅是不必要的,而且是非常有害的,因为它们阻碍了all()的正常短路行为。
检查字典中是否存在所有键:
{'key_1', 'key_2', 'key_3'} <= set(my_dict)
检查字典中是否存在一个或多个键:
{'key_1', 'key_2', 'key_3'} & set(my_dict)
并不是说这不是你没有想过的事情,但我发现最简单的事情通常是最好的:
if ("foo" in foo) and ("bar" in foo):
# do stuff
使用集:
if set(("foo", "bar")).issubset(foo):
#do stuff
另外:
if set(("foo", "bar")) <= set(foo):
#do stuff