繁体   English   中英

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

[英]How to convert positive numbers to negative in Python?

我知道abs()可用于将数字转换为正数,但是否有相反的事情?

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

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

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

提前谢谢了

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

    -abs(n)

请注意, 0将保持为0

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

如果你知道这个数字是正数,你可以通过做减法来避免函数调用的开销:

0 - n 

这可能根本无关紧要,但如果此代码在游戏循环或其他任何内容中,则函数调用的开销可能会增加。

>>> timeit.timeit("-abs(40)")
0.08589089001179673
>>> timeit.timeit("0 - 40")
0.01394932100083679

您从正数开始,因此只需使用一元-运算符。

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

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

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

这也会很好

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM