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)
您应该在列表推导中使用过滤器语句:
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是"后备价值".