list=sorted([5, 2, 3, 1, 4]) print(list) 输出结果: [1, 2, 3, 4, 5]
key参数的值为一个函数,此函数只有一个参数且返回一个值用来进行比较。
例如通过key指定的函数来忽略字符串的大小写:
list=sorted("This is a test string from Andrew".split(), key=str.lower) 打印结果: ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
但是key参数更多的是用复杂对象的某些值来对复杂对象的序列排序:
复杂语法:
sorted(iterable, cmp=None, key=None, reverse=False) ===》
iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
举例:lambda:
sorted_list=sorted(four_list,key=lambda x:x["hit_count"],reverse=True)
解释:four_list:要排序的列表;lambda是一个匿名函数,主体是个表达式,根据“hit_count”排序;reverse=True代表降序
最简单的lambda例子:定义一个lambda表达式,求三个数的和
# -*- coding: UTF-8 -*-
f = lambda x,y,z:x + y + z
print f(1,2,3)
print f(4,5,6)
输出:
6
15