2016-03-04 91 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 
相關問題