如何使用 Python 给出列表中每个数字元素的相反数

How to give the opposite of each numeral element of a list using Python

在Python中有什么方法可以在一行中给出列表中每个数字元素的相反数,而不用做,例如:

list_ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for x in range(len(list_)):
    list_[x] = -list_[x]

在这种情况下,考虑列表

[0, 1, 2, 3..., 9]

输出应该是

[0, -1, -2, -3..., -9]

列表中的每个数字都应该是相反的。


我尝试了 -list_ 但没有用。

我搜索过,但我只找到了如何 reverse 一个列表,而不是如何 反对 它的元素(我希望这是正确的词,这意味着每个数字最终应该是相反的。)


我知道我可以使用 list comprehension,但我想知道 Python 中是否有一个特殊的关键字来实现这一点。

list_ = range(10)
list_ = [-x for x in list_]

list_ = range(10)
list_ = list(map(lambda x: -x, list_))

list_ = range(0,-10,-1)

一种方法是使用具有所需属性的 numpy 数组:

import numpy as np

list_ = np.array(range(10))
list_inv = - list_

给出

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

如果您的输入值是数字,您可以这样做

negated_values=map(lambda x:-x, mylist)

哪里

print(list(negated_values))

returns

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

如果你想反转一个列表而不像其他人建议的那样使用列表理解或映射(即最简单的单一命令)你可以用 Numpy 来做,但你必须转换为 Numpy 数组首先(这显然增加了它自己的复杂性)。然后你可以否定数组例如

import numpy as np

x = [1, -2, 3]
arr = np.array(x)

arr    
Output: array([ 1, -2,  3])

-arr
Output: array([-1,  2, -3])