首页 > 解决方案 > 是否可以在列表理解中使用“通过”?

问题描述

我正在尝试使用列表理解在 if-else 语句中使用 pass。这是我正在尝试做的一个例子。

result = [x if condition1 else y if condition2 else pass for x in lisst]

问题

当两者condition1condition2都是False时,我想pass(跳过那个x)。我怎样才能在列表理解中做到这一点?

标签: pythonlist-comprehension

解决方案


如果你想过滤掉元素,那么只需使用它的专用语法:

[x for x in lisst if x == 2]

对于您的新编辑:

[x if x == 2 else 7 for x in lisst if x in (2, 5)]

对于您的第三次编辑(请在人们回答问题后停止编辑问题):

def func(x):
    if condition1:
        return x
    if condition2:
        return y
    return None

result = [v for v in [func(x) for x in lisst] if v is not None]

推荐阅读