Python:检查列表推导中的KeyError?

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)

Mar*_*ers 5

dict.get()如果缺少密钥,您可以使用默认为空列表:

b = [i for i in mydict.get('entries', [])]
Run Code Online (Sandbox Code Playgroud)

在您的版本中,if过滤器仅适用于每次迭代,就像您iffor循环下嵌套语句一样:

for i in mydict['entries']:
    if mydict['entries']:
Run Code Online (Sandbox Code Playgroud)

如果entries抛出一个没什么用处KeyError.