如何在 Python 中将正数转换为负数?
How to convert positive numbers to negative in Python?
我知道 abs()
可以用来将数字转换为正数,但是有没有相反的东西?
我有一个充满数字的数组,我需要将其转换为负数:
array1 = []
arrayLength = 25
for i in arrayLength:
array1.append(random.randint(0, arrayLength)
我想也许我可以在添加数字时转换数字,而不是在数组完成后转换。有人知道它的代码吗?
非常感谢
您从正数开始,所以只需使用一元 -
运算符。
arrayLength = 25
array1 = [-random.randint(0, arrayLength) for _ in arrayLength]
如果你想强制一个数字为负数,不管它最初是正数还是负数,你可以使用:
-abs(n)
请注意,整数 0
将保持 0
。
这样也不错
import random
array1 = []
arrayLength = 25
for i in range(arrayLength):
array1.append((random.randint(0, arrayLength)*-1))
我认为最好的方法是将每个数字乘以 -1:
def negativeNumber(x):
neg = x * (-1)
return neg
-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
我知道 abs()
可以用来将数字转换为正数,但是有没有相反的东西?
我有一个充满数字的数组,我需要将其转换为负数:
array1 = []
arrayLength = 25
for i in arrayLength:
array1.append(random.randint(0, arrayLength)
我想也许我可以在添加数字时转换数字,而不是在数组完成后转换。有人知道它的代码吗?
非常感谢
您从正数开始,所以只需使用一元 -
运算符。
arrayLength = 25
array1 = [-random.randint(0, arrayLength) for _ in arrayLength]
如果你想强制一个数字为负数,不管它最初是正数还是负数,你可以使用:
-abs(n)
请注意,整数 0
将保持 0
。
这样也不错
import random
array1 = []
arrayLength = 25
for i in range(arrayLength):
array1.append((random.randint(0, arrayLength)*-1))
我认为最好的方法是将每个数字乘以 -1:
def negativeNumber(x):
neg = x * (-1)
return neg
-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