将 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]
将lambda
与map
一起使用
演示:
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]