如何更改数字列表的符号

时间:2013-11-29 21:40:24

标签: python

您好,我有一个随机的数字列表,您可以在其中识别出主要的数字,并且它会被它自己和其他数字分开。但是我想要那么我从操作中得到的数字有一个特定的符号,因为例如:变量a1为正,b1为负,c1为正等。 这就是我的工作:

a1 = -abs(signal1).max()
b1 = abs(signal2).max()
c1 = -abs(signal3).max()
d1 = abs(signal4).max()
e1 = -abs(signal5).max()
f1 = abs(signal6).max()

values = [a1, b1, c1, d1, e1, f1]
max_value = float(max(values, key=abs))
values = [v/max_value for v in values]
a1, b1, c1, d1, e1, f1 = values

4 个答案:

答案 0 :(得分:2)

这是使用map的一个很好的用例:

l = [-1, 2, -3, 4, -5]
lr = map(lambda x: x * -1, l)
lr
>>[1, -2, 3, -4, 5]

答案 1 :(得分:0)

您可以遍历列表并将每个数字乘以-1。

for index in range(len(values)):
  values[index] *= -1

答案 2 :(得分:0)

方法一:

map(lambda x: x * -1, values)

方法二:

[-1 * i for i in values]

答案 3 :(得分:0)

from itertools import cycle

def amp(lst):
    return abs(max(lst, key=abs))

values = [amp(x)*sign for x,sign in zip([signal1, signal2, signal3, signal4, signal5, signal6], cycle([1, -1]))]
norm = float(amp(values))
values = [v/norm for v in values]