在python列表理解中评估True和False的条件?

Top*_*her 0 python arrays

在python中你可以采用如下数组:

a = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

...然后运行以下列表推导以基于条件评估元素的True:

b = [True for num in a if num > 3]
Run Code Online (Sandbox Code Playgroud)

但是,这只返回大于3的元素的真值,因此我们得到:

[True, True, True]
Run Code Online (Sandbox Code Playgroud)

我知道我们可以使用多行方法,但有没有办法在这里扩展条件语句以使其保持在这种形式的一行,如果条件不满足则返回False?最后,我希望以上为"a"返回以下内容:

[False, False, False, True, True, True]
Run Code Online (Sandbox Code Playgroud)

Abh*_*jit 7

只需将条件从过滤器移动到表达式即可

>>> a = [1, 2, 3, 4, 5, 6]
>>> [n > 3 for n in a]
[False, False, False, True, True, True]
Run Code Online (Sandbox Code Playgroud)


Tig*_*kT3 5

使用三元运算符:

b = [True if num > 3 else False for num in a]
Run Code Online (Sandbox Code Playgroud)