忽略列表清单中的keyError

时间:2017-05-23 14:15:55

标签: python list dictionary list-comprehension

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

allValues = []
for dictionary in masterDict:
    values = [(dictionary[x]) for x in keysArray]
    allValues.append(values)

1 个答案:

答案 0 :(得分:9)

您应该在列表理解中使用 过滤器语句

values = [dictionary[x] for x in keysArray if x in dictionary]

所以这里Python将首先检查x in dictionary是否成立。如果不是,则忽略x。否则dictionary[x]会添加到词典中。

如果想要忽略这些值,但将后备值添加到列表中,则可以使用:

values = [dictionary.get(x,fallback) for x in keysArray]

其中fallback是"后备值"。