使用布尔值创建一个列表,该列表表示应用于列表时谓词的结果

gtm*_*red 1 python list-comprehension python-3.x

我试图找出是否有办法通过Python 3中的比较获得逻辑列表.基本上我想输入的是这个

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
xlist = 4 <= x
Run Code Online (Sandbox Code Playgroud)

我想要输出的是一个看起来像这样的列表

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

反正有没有使用像列表理解这样做

xlist = [4 <= i for i in x]
Run Code Online (Sandbox Code Playgroud)

对于更大的列表,有什么更有效的吗?

Dav*_*d Z 5

列表理解确实没有错.这正是列表理解所设计的那种东西.

如果您正在使用NumPy(或SciPy),那么您正在寻找的语法确实有效:

from numpy import array

...

x = array([1,2,3,4,5,6,7,8,9])
xlist = 4<=x
Run Code Online (Sandbox Code Playgroud)

但是如果你还没有充分的理由使用NumPy,那么仅仅为了这个语法就不值得.无论如何,想一想我还不确定NumPy是否适用于Python 3.