我可以问如何在Python实现这一点:如果数字是正数或负数(包括0),如何返回1或-1?
输入: I = [10,-22,0]
输出: O = [1,-1,-1]
我想 O=I/abs(I)
但如何处理零?
我可以问如何在Python实现这一点:如果数字是正数或负数(包括0),如何返回1或-1?
输入: I = [10,-22,0]
输出: O = [1,-1,-1]
我想 O=I/abs(I)
但如何处理零?
以下应该做你想要什么:
>>> I = [10,-22,0]
>>> O = [1 if v > 0 else -1 for v in I]
>>> O
[1, -1, -1]
>>>
如果你想使用map
与lambda
,你可以这样做:
>>> O = map(lambda v: 1 if v > 0 else -1, I)
>>> O
[1, -1, -1]
>>>
谢谢!有没有矢量化的方式来做到这一点?我不确定“for循环”是否会减慢计算速度。 – lanselibai
这就是所谓的理解。它应该非常高效。 –
谢谢,我会拿! – lanselibai
你可以只是这样做:
I = [10,-22,0]
output = []
for num in I:
if num <=0:
output.append(-1)
else:
output.append(1)
print output
你可以使用一个循环,迭代列表中的每一个元素,并有'if'条件为'0' –
你使用纯python吗? –
你是什么意思“纯”python?我正在使用python – lanselibai