在dict中检查multilpe键

Ric*_*ckD 3 python

我有一个像这样的字典(),

xyz = {"a":{"b":[1,2,3]}}
Run Code Online (Sandbox Code Playgroud)

我想检查嵌套的dict是否有"b"或"c"键.我可以检查一个键,如,

>>> "b" in xyz.get("a",{})
True
Run Code Online (Sandbox Code Playgroud)

我试过以下,

>>> "b" or "c" in xyz.get("a",{})
'b'
Run Code Online (Sandbox Code Playgroud)

但是想知道我是否可以为"b"和"c"写这个陈述.希望这是有道理的.

utd*_*mir 5

any 和生成器表达式是你的朋友:

>>> xyz = {"a":{"b":[1,2,3]}}
>>> any(i in xyz.get("a",{}) for i in ["b", "c"])
True
Run Code Online (Sandbox Code Playgroud)

  • 次要技术要点:这不是列表理解,它是一个生成器表达式(它仍然是一种理解,至少在3.x中,只是不同类型). (2认同)