如何将列表中的所有数字转换为负数?

时间:2014-09-25 18:40:01

标签: python python-3.x list negative-number

我正在尝试将正数列表转换为python 3.3.3中具有相同值的负数列表

例如,将[1,2,3]转为[-1,-2,-3]

我有这段代码:

xamount=int(input("How much of x is there"))
integeramount=int(input("How much of the integer is there"))
a=1
lista=[]
while(a<=integeramount):
    if(integeramount%a==0):
        lista.extend([a])
    a=a+1
listb=lista
print(listb)
[ -x for x in listb]
print(listb)

当我希望一个是正面而一个是负面时,这会打印两个相同的列表。

6 个答案:

答案 0 :(得分:15)

最自然的方式是使用列表理解:

mylist = [ 1, 2, 3, -7]
myneglist = [ -x for x in mylist]
print(myneglist)

给出

[-1, -2, -3, 7]

答案 1 :(得分:3)

如果要修改列表:

mylist = [ 1, 2, 3, -7]
print(mylist)
for i in range(len(mylist)):
    mylist[i] = -mylist[i]
print(mylist)

答案 2 :(得分:3)

您可以使用numpy包并执行numpy.negative()

答案 3 :(得分:0)

还有这种方法:

小小注意,这只有在所有数字开始为正数时才有效。它不会影响0.如果您有负数,您不想改变,您需要在下面添加IF语句。

if num < 0: continue
numbers = [1, 2, 3, 4 ,5]
for num in numbers:
    numbers[num-1] = num - (2*num)
numbers
[-1, -2, -3, -4, -5]

答案 4 :(得分:0)

对于大型列表,您最好使用| Name | value | |:-----|----------:| | A |[1,9,6,1,9]| | A |[4,2,9,4,2]| | A |[7,5,3,7,5]| | B |[6,1,9,6,1]| | B |[9,4,2,9,4]| | B |[3,7,5,3,7]|

numpy

答案 5 :(得分:-1)

对于球拍:

enter code here

(define (negativelist lst) (cond [(空?lst) '()] [(co​​ns (* -1 (first lst))(negativelist (rest lst)))]))