在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]
答案 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]