我想做的事情是:
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?
当前回答
我认为这是最聪明和最精辟的。
{'key1','key2'} <= my_dict.keys()
其他回答
这应该可以工作:
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()的正常短路行为。
对我来说,简单和容易与pydash裁判中间的无键
import pydash as _
_.get(d, 'key1.key2.key3.whatevermaybeNone.inthemiddle', default=None) )
你可以这样做:
>>> if all(k in foo for k in ("foo","bar")):
... print "They're there!"
...
They're there!
使用集:
if set(("foo", "bar")).issubset(foo):
#do stuff
另外:
if set(("foo", "bar")) <= set(foo):
#do stuff
那么使用呢?
if reduce( (lambda x, y: x and foo.has_key(y) ), [ True, "foo", "bar"] ): # do stuff