美文网首页百人计划
Python sorted()排序函数

Python sorted()排序函数

作者: 霞姐时间管理 | 来源:发表于2017-12-14 06:39 被阅读41次
  • Python内置的sorted()函数就可以对list进行排序。
  • sorted()函数可对列表可以接收一个key函数来实现自定义的排序。
  • key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。
  • 要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True。
sorted()三个参数,第一个列表,第二个key函数,第三个是否反向排序,后两个参数可缺省。如:

sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)

注意:
  • sorted()函数是一个高阶函数,用sorted()排序的关键在于实现一个映射函数。
  • 默认情况下,对字符串排序,是按照ASCII的大小比较的。

点击进入详细内容

练习题:

假设我们用一组tuple表示学生名字和成绩:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
请用sorted()对上述列表分别按:(1)名字排序;(2)按成绩从高到低排序。

#_*_coding:utf-8_*_
L=[('Bob',75),('Adam',92),('Bart',66),('Lisa',88)] #list中的元素是一个个tuple(元组)
def by_name(t):#传入的参数是tuple
    return t[0] #把tuple中的第一个元素取出来

def by_score(t):#传入的参数是tuple
    return t[-1] #把tuple中的倒数一个元素取出来
    
print sorted(L,key=by_name)
print sorted(L,key=by_score,reverse=True)

运行结果:

[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]

相关文章

网友评论

    本文标题:Python sorted()排序函数

    本文链接:https://www.haomeiwen.com/subject/cmlhwxtx.html