在Python中,如何根据另一个数字的符号更改列表中一个数字的符号?

5

我有一个列表中的两个数值,假设它们是

A = [1, -3]

如果第二个值的符号是正数,那么我可以不改变这个数字。如果第二个值的符号是负数,则需要将第一个值更改为 -1。但如果第一个值是 0,那就什么都不需要做,因为 -0 和正零相同。
所以在 A 的情况下,我需要将 1 更改为 -1。因此最终结果应该是:
A = [-1, -3]

我是一个新手程序员,所以我认为它基本上涉及将一个值添加到A的末尾,然后删除第一个值。我认为我们必须这样做,因为据我所知,没有办法只更改数字的符号。

所以,我认为它可能是这样的:

A = [1, -3]
for i in A:
    if #something about the second value being a positive value
        pass
    else:
        A.append("-1")
        del A[0]
print A

任何帮助都将不胜感激,谢谢!
4个回答

10

这个可以工作:

if A[1] < 0:
    A[0] *= -1

1
一个简单的一行代码就可以解决:
A = [1, -3]
A = [-A[0] if A[-1] < 0 else A[0], A[-1]]

print A

这将产生预期的输出:
[-1, -3]

注意:A[-1] 表示列表的最后一个元素,在这种情况下与 A[1] 相同。

1
这是我至少会这样做的方式:D 但我认为你误读了问题。 - Games Brainiac
请参考cforbish的答案。 - Games Brainiac
@GamesBrainiac 我也在做几乎相同的事情:P - K DawG

1
A=[1,3]
if A[1]<0:A[0]*=-1
print A

0

一切都简单得多:

if A[1] < 0:
    A[0] = -1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接