如何在 python3 中比较 int 和 int 列表



将 int 列表与 int 进行比较:

a = [-1,-1,0,2]
a > 1

我想得到一个结果,如下所示:

[False,False,False,True]

如何在 Python3 中执行此操作?

在原生 Python 中:

a = [-1,-1,0,2]
bools = [x > 1 for x in a]
>>> [False, False, False, True]

在numpy中,您可以使用更简单的语法,就像在您的示例中一样(如果您有数百万个值而不是四个值,这也将明显更快(:

import numpy as np
a = np.array([-1,-1,0,2])
bools = a > 1
>>> array([False, False, False,  True])

理解可以做到:

[i > 1 for i in a]

否则,您可以使用numpy

a = np.array([-1,-1,0,2])
a > 1
#[False False False  True]

您可以使用列表推导式轻松执行此操作

source_arr = [-1,-1,0,2]
condition = 1
print([item > condition for item in source_arr]) #--> [False, False, False, True]

在更简单的外形中

a = [-1,-1,0,2]
b = []
for x in a:
b.append(x>1)
print(b)

试试这个:-

a = [-1,-1,0,2]
ls = [True if x>1 else False for x in a]
print(ls)

输出:-

[False, False, False, True]

lambdamap一起使用

演示:

a = [-1,-1,0,2]
print(list(map(lambda x: x > 1, a)))

输出:

[False, False, False, True]
>> a = [-1,-1,0,2]
>> b = 1
>> [x > b for x in a]

最新更新