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

时间:2015-05-30 03:18:37

标签: python arrays

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

a = [1, 2, 3, 4, 5, 6]

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

b = [True for num in a if num > 3]

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

[True, True, True]

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

[False, False, False, True, True, True]

2 个答案:

答案 0 :(得分:5)

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

即可
>>> a = [1, 2, 3, 4, 5, 6]
>>> [n > 3 for n in a]
[False, False, False, True, True, True]

答案 1 :(得分:1)

使用三元运算符:

b = [True if num > 3 else False for num in a]