当前位置:   article > 正文

python的sort()方法详解_python sort

python sort
  1. >>> l1=[4,2,3,2,3,3,4,4,1,4]
  2. >>> help(l1.sort)
  3. Help on built-in function sort:
  4. sort(*, key=None, reverse=False) method of builtins.list instance
  5. Sort the list in ascending order and return None.
  6. The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
  7. order of two equal elements is maintained).
  8. If a key function is given, apply it once to each list item and sort them,
  9. ascending or descending, according to their function values.
  10. The reverse flag can be set to sort in descending order.

Google翻译

内置函数 sort 的帮助:

内置数据结构list 实例的 sort(*, key=None, reverse=False) 方法
     按升序对列表进行排序并返回 None。
    
     排序是就地的(即列表本身被修改)和稳定的(即保持两个相等元素的顺序)。
    
     如果给出了key函数,则将其应用于每个列表项并根据它们的函数值对它们进行升序或降序排序。
    
     可以将反向标志设置为按降序排序。

 

  1. >>> l1=[4,2,3,2,3,3,4,4,1,4]#数据准备
  2. >>> l1.sort()#默认情况下,即reverse=True,按照升序排列
  3. >>> l1
  4. [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
  5. >>> l1.sort(reverse=False)
  6. >>> l1
  7. [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
  8. >>> l1.sort(reverse=True)#令reverse=True,按照降序排列
  9. >>> l1
  10. [4, 4, 4, 4, 3, 3, 3, 2, 2, 1]
  11. #将函数赋给key,然后将l1里的元素一一带入到key函数中,再根据key的返回值对l1里的元素进行排序
  12. #函数准备
  13. >>> def distance(x):
  14. '''函数的返回值是输入x与3的距离'''
  15. return abs(3-x)
  16. >>> l1.sort(key=distance)
  17. >>> l1
  18. [3, 3, 3, 4, 4, 4, 4, 2, 2, 1]
  19. >>> l1.sort(key=distance,reverse=True)
  20. >>> l1
  21. [1, 4, 4, 4, 4, 2, 2, 3, 3, 3]

下面这个例子完美的体现key的应用

  1. #函数准备
  2. >>> def pick(x):
  3. return x[1]
  4. >>> pairs = [(4, 'four'),(1, 'one'), (3, 'three'), (2, 'two')]
  5. >>> pairs.sort()s#默认先按照元素的第一个由小到大排列
  6. >>> pair
  7. [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
  8. #那我们如何根据元素的第二个元素进行排列呢?接下来就是体现key作用的时候到了
  9. >>> pairs.sort(key=pick)
  10. >>> pairs
  11. [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

最后介绍一个小技巧:lambda关键字的应用,sort配合lambda使用,能充分发挥key的优势。

lambda只有一个功能,就是创建一个“简单”的无名函数,简单到只有输入和返回。其一般形式:

lambda 输入:返回

对应的def形式是

def 无函数名(输入):

   return 返回

就拿上面pick函数的例子来说,使用lambda表达式,只需一行代码就可以轻松实现排序

  1. >>>pairs.sort(key=lambda x: x[1])
  2. >>> pairs
  3. [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/197410
推荐阅读
相关标签
  

闽ICP备14008679号