忽略列表清单中的keyError

loa*_*oag 0 python dictionary list-comprehension list

我正在尝试提取在dict中具有某些键的所有对象,但是一些dicts不包含所有键,我想忽略keyError并继续.我已经看到了一些使用try和except执行此操作的实现,但它在我的情况下不起作用

allValues = []
for dictionary in masterDict:
    values = [(dictionary[x]) for x in keysArray]
    allValues.append(values)
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 9

您应该在列表推导中使用过滤器语句:

values = [dictionary[x] for x in keysArray if x in dictionary]
Run Code Online (Sandbox Code Playgroud)

所以这里Python将首先检查是否x in dictionary成立.如果没有,则x忽略.否则dictionary[x]被添加到字典中.

如果你希望忽略这些值,而是一个后备值添加到列表中,你可以使用:

values = [dictionary.get(x,fallback) for x in keysArray]
Run Code Online (Sandbox Code Playgroud)

哪里fallback是"后备价值".