dav*_*ers 5 python dictionary key
简单问题:是否有用于检查字典中几个键是否存在的简写?
'foo' in dct and 'bar' in dct and 'baz' in dct
Run Code Online (Sandbox Code Playgroud)
>>> all(x in dct for x in ('foo', 'bar', 'qux'))
False
>>> all(x in dct for x in ('foo', 'bar', 'baz'))
True
>>>
Run Code Online (Sandbox Code Playgroud)
它可以为您节省高达2个字符(如果您有更长的列表需要检查,可以为您节省更多).
{"foo","bar","baz"}.issubset(dct.keys())
Run Code Online (Sandbox Code Playgroud)
对于python <2.7,你必须用set替换set literal set(["foo","bar","baz"])
如果您喜欢运算符并且不介意创建另一个集合的性能,则可以使用<=集合上的运算符和dict的键集.
两种变化组合如下:
set(["foo","bar","baz"]) <= set(dct)
Run Code Online (Sandbox Code Playgroud)
最后,如果你使用python 3,dict.keys()将返回一个setlike对象,这意味着你可以调用运算符而不会产生如下性能损失:
{"foo","bar","baz"} <= dct.keys()
Run Code Online (Sandbox Code Playgroud)