sort

sort是list的内部函数sort(key=None, reverse=False)。 调用sort函数改变list本身,不会返回新的list, 这个和sorted的本质区别。下面介绍下参数

key参数

排序的关键字, 如果排序按照特定的要求,这个是非常有用的。看下面例子

  • 按照字母长度排序​​

​>>> words = ['hello', 'i', 'am', 'peter']  ​

​>>> words.sort(key=len)​

​>>> words ['i', 'am', 'hello', 'peter']​

  • 按第一个字母排序

​>>> words.sort(key=lambda k: k[0])  ​

​>>> words ​

​['am', 'hello', 'i', 'peter']​

  • 如果是json,也可以按照内嵌的某个field的排序

​>>> grades = [{'name': 'rock', 'math':90}, {'name':'jacky', 'math':80}]  ​

​>>> grades.sort(key=lambda k:k['math'])                                  ​

​>>> grades                                                               ​

​[{'name': 'jacky', 'math': 80}, {'name': 'rock', 'math': 90}]​

reverse参数

排序的顺序,默认是正序


​>>> words.sort(key=lambda k: k[0], reverse=True)                          ​

​>>> words ​

​['peter', 'i', 'hello', 'am']​


sorted

sorted 是python内置方法, 和len, list之类的方法是一样的, 返回是一个新的list对象。

sorted(iterable, key=None, reverse=False), 用法和sort类似

​>>> sorted(words, key=lambda k: k[0])  ​

​['am', 'hello', 'i', 'peter']​