【问题标题】:How to convert positive numbers to negative in Python?如何在 Python 中将正数转换为负数?
【发布时间】:2021-02-03 06:46:00
【问题描述】:

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

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

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

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

在此先感谢

【问题讨论】:

    标签: python numbers negative-number


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

          -abs(n)
      

      请注意,0 将保留为 0

      【讨论】:

        【解决方案3】:

        这也会很好

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

            -abs(n) 是 Tom Karzes 早些时候提出的一个非常好的答案,因为无论您是否知道这个数字是否为负,它都有效。

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

            0 - n 
            

            这可能根本不重要,但如果这段代码在游戏循环或其他任何东西中,那么函数调用的开销可能会增加。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-04-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-11-13
              • 2011-12-13
              相关资源
              最近更新 更多