【问题标题】:Sort a list in python在python中对列表进行排序
【发布时间】:2013-10-12 13:25:26
【问题描述】:

我有这份清单

[1,-5,10,6,3,-4,-9]

但现在我希望列表像这样排序:

[10,-9,6,-5,-4,3,1]

如您所见,无论每个数字有什么标志,我都想从高到低排序,但保持标志,清楚吗?

【问题讨论】:

    标签: python list sorting absolute-value


    【解决方案1】:

    使用abs 作为sorted 函数的键或list.sort

    >>> lis = [1,-5,10,6,3,-4,-9]
    >>> sorted(lis, key=abs, reverse=True)
    [10, -9, 6, -5, -4, 3, 1]
    

    【讨论】:

      【解决方案2】:

      用途:

          l.sort(key= abs, reverse = True)
      

      可以使用 sort() 方法对列表进行排序。 sort 方法有一个参数,叫做 key,你可以传递一个函数。使用此参数,您的列表将不会按列表的值排序,而是按列表中您的函数的值排序。

      在您的情况下,您应该使用 abs() 函数,该函数将返回列表元素的绝对值。所以,你的清单

      >>> l = [1,-5,10,6,3,-4,-9]
      

      将按原样进行排序

      >>>  [abs(1),abs(-5),abs(10),abs(6),abs(3),abs(-4),abs(-9)]
      

      应该是:

      >>> [1 ,-4 ,-5 ,6 ,-9 ,10]
      

      要从大到小排序,也可以使用 reverse=True 参数。

      【讨论】:

        【解决方案3】:
        sorted([5, 2, 3, 1, 4])
        

        更多详情请见here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-11
          • 2018-04-17
          • 1970-01-01
          • 2016-06-11
          • 2012-07-16
          • 2012-11-21
          相关资源
          最近更新 更多