zoukankan      html  css  js  c++  java
  • 浅析python的 sorted()函数

    排序是在程序中经常用到的算法,python内置排序函数sorted()可以完成list排序。

    举例分析:

    单纯list排序

    >>> sorted([100, 57, -112, 90, -221])
    [-221, -112, 57, 90, 100]

    sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,如绝对值函数

    >>> sorted([100, 57, -112, 90, -221],key=abs)
    [ 57, 90, 100,112,221]
    默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面,如
    >>> sorted(['alex','Bob','Zoo','grace'])
    ['Bob','Zoo','alex','grace']
    若想实现忽略大小写排序,则可统一将首字母转换小写后排序,即 key=str.lower()
    >>> sorted(['alex','Bob','Zoo','grace'], key=str.lower())
    ['alex',Bob','grace','Zoo']
    若想实现倒序排列,则传入第三个参数 reverse=True
    >>> sorted(['alex','Bob','Zoo','grace'], key=str.lower(), reverse=True)
    
    
    ['Zoo','grace','Bob','alex']
    举例说明:
    我们用一组tuple表示学生名字和成绩,L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)],用sorted()函数分别完成按姓名和分数从高到低排序
    L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
    def sort_name(t):
    return t[0].lower()
    def sort_score(t):
    return t[1]
    L1 = sorted(L, key=sort_name)
    L2 = sorted(L, key=sort_score, reverse = True)
    print(L1)
    print(L2)

     
    参考http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318230588782cac105d0d8a40c6b450a232748dc854000


     
  • 相关阅读:
    易错小细节
    Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GiftAnimationView"
    iOS 获取UIView 动画的实时位置的方法
    控制器跳转后看不到导航栏
    定时器显示礼物弹出的动画,不错的思路
    error===>ld: 2 duplicate symbols for architecture x86_64
    AppStore上传条例
    right here waiting的歌词
    Take my breath away
    Sailing
  • 原文地址:https://www.cnblogs.com/sunshine11/p/5336925.html
Copyright © 2011-2022 走看看