在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)
只需将条件从过滤器移动到表达式即可
>>> 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)