如果不是 None,则在列表理解范围内附加到列表

Append to list if not None, within a list comprehension

我有一个字典,在一个键下包含一些 None 值,例如:

tmp = {"frames": ['0', '12', '56', '35', None, '77', '120', '1000']}

我需要从字典中创建一个元素列表,在“frame”键下,这些元素不是 None(None 应该被忽略)。明确的方法是:

for frame in tmp['frames']:
    if frame:
        output.append(frame)

但我想知道是否有一个单行表达式可以做到这一点。我可以想到类似的东西:

output = [frame if frame else None for frame in tmp['frames']]

但是这样,我不知道如何排除 None

您可以在列表理解中使用 if 条件

[int(value) for value in tmp['frames'] if value is not None]