简单问题:是否有用于检查字典中几个键是否存在的简写?
'foo' in dct and 'bar' in dct and 'baz' in dct
答案 0 :(得分:8)
all(x in dct for x in ('foo','bar','baz'))
答案 1 :(得分:7)
您可以将all()
与generator expression:
>>> all(x in dct for x in ('foo', 'bar', 'qux'))
False
>>> all(x in dct for x in ('foo', 'bar', 'baz'))
True
>>>
它可以为您节省2个字符(但如果您需要检查更长的列表,可以为您节省更多)。
答案 2 :(得分:5)
{"foo","bar","baz"}.issubset(dct.keys())
对于python< 2.7,你必须用set(["foo","bar","baz"])
如果您喜欢运算符并且不介意创建另一个集合的性能,则可以使用集合上的<=
运算符和dict的键集。
两种变化组合如下:
set(["foo","bar","baz"]) <= set(dct)
最后,如果你使用python 3,dict.keys()
将返回一个setlike对象,这意味着你可以调用运算符而不会出现如下性能损失:
{"foo","bar","baz"} <= dct.keys()