如何在Python中将正数转换为负数?

问题描述 投票:0回答:5

我知道

abs()
可以用来将数字转换为正数,但是有没有相反的东西?

我有一个充满数字的数组,我需要将其转换为负数:

array1 = []
arrayLength = 25
for i in range(arrayLength):
   array1.append(random.randint(0, arrayLength)

我想也许我可以在添加数字时进行转换,而不是在数组完成后进行转换。有人知道代码吗?

提前非常感谢

python numbers negative-number
5个回答
39
投票

如果你想强制一个数字为负数,无论它最初是正数还是负数,你可以使用:

    -abs(n)

请注意,整数

0
将保留
0


19
投票

-abs(n)
是 Tom Karzes 之前提出的一个非常好的答案,因为无论您是否知道数字是否为负数,它都有效。

如果您知道该数字是正数,尽管您可以通过仅取变量的负数来避免函数调用的开销:

-n 

这可能根本不重要,但如果这段代码处于像游戏循环这样的热循环中,那么函数调用的开销就会增加。

>>> timeit.timeit("x = -abs(y)", setup="y = 42", number=5000)
0.0005687898956239223
>>> timeit.timeit("x = -y", setup="y = 42", number=5000)
0.0002599889412522316

5
投票

我相信最好的方法是将每个数字乘以-1:

def negativeNumber(x):
    neg = x * (-1)
    return neg

3
投票

您从正数开始,因此只需使用一元

-
运算符。

arrayLength = 25
array1 = [-random.randint(0, arrayLength) for _ in arrayLength]

-3
投票

这也会很好

import random
array1 = []
arrayLength = 25
for i in range(arrayLength):
   array1.append((random.randint(0, arrayLength)*-1))
© www.soinside.com 2019 - 2024. All rights reserved.