Ric*_*ard 3 python dictionary list-comprehension
是否有一种方法可以在一行中编写以下内容而不会导致KeyError(如果entries
不存在)mydict
?
b = [i for i in mydict['entries'] if mydict['entries']]
Run Code Online (Sandbox Code Playgroud)
dict.get()
如果缺少密钥,您可以使用默认为空列表:
b = [i for i in mydict.get('entries', [])]
Run Code Online (Sandbox Code Playgroud)
在您的版本中,if
过滤器仅适用于每次迭代,就像您if
在for
循环下嵌套语句一样:
for i in mydict['entries']:
if mydict['entries']:
Run Code Online (Sandbox Code Playgroud)
如果entries
抛出一个没什么用处KeyError
.