2016-03-04 220 views

回答

8

以下应该做你想要什么:

>>> I = [10,-22,0] 
>>> O = [1 if v > 0 else -1 for v in I] 
>>> O 
[1, -1, -1] 
>>> 

如果你想使用maplambda,你可以这样做:

>>> O = map(lambda v: 1 if v > 0 else -1, I) 
>>> O 
[1, -1, -1] 
>>> 
+0

谢谢!有没有矢量化的方式来做到这一点?我不确定“for循环”是否会减慢计算速度。 – lanselibai

+0

这就是所谓的理解。它应该非常高效。 –

+0

谢谢,我会拿! – lanselibai

1

你可以只是这样做:

I = [10,-22,0] 
output = [] 

for num in I: 
    if num <=0: 
     output.append(-1) 
    else: 
     output.append(1) 

print output 
相关问题