语法
sorted(iterable[, cmp[, key[, reverse]]])
sort([cmp[, key[, reverse]]])
cmp: 比较函数,参数为两个可比较的参数
key: 带一个参数的函数,用来为每个元素提取比较值
实战
对字典排序
|
|
多维 list 排序
|
|
按照等级排序,等级相同时,按成绩排序
字典混合 list 排序
对字典 my_dict 的 value 结构 [n, m] 中的 m 按照从小到大排序1234my_dict = { 'Li':['A',1], 'Zhang':['B',2]}from operator import itemgettersorted(my_dict.iteritems(), key = lambda (k,v):operator.itemgetter(1)(v))
List 混合字典排序
按照 list 中 rating 和 name 进行排序1234gameresult = [{"name":"Bob", "wins":10, "losses":3, "rating":75}, {"name":"David", "wins":3, "losses":10, "rating":50}]from operator import itemgettersorted(gameresult, key = operator.itemgetter("rating", 'name'))
Tips
- sort() 不需要复制原有列表,消耗内存较少,效率较高,不需要保存原有列表,可以选择 sort()
- key 比 cmp 效率更高