python 内置函数

python sorted()函数通过回调函数或者lamda表达式的方式排序可迭代对象的每个元素。它不会改变原有可迭代对象。

语法

语法如下:
sorted(iterable,key=函数(排序规则), reverse=False)

参数

  • iterable: 可迭代对象。
  • key:可选参数,排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序。
  • reverse:可选参数,是否倒序。True: 倒序, False: 正序

返回值

返回排序好的可迭代对象

程序示例

介绍一些例子了解该函数的使用方法。

例1

没有自定义函数的例子

#!/usr/bin/python
# coding=utf-8
lst = [3,2,5,4,1]
lst_ret = sorted(lst) #正序
lst_ret2 = sorted(lst, reverse=True) #倒序
print("正序", lst_ret)
print("倒序", lst_ret2) 

程序运行结果:

正序 [1, 2, 3, 4, 5]
倒序 [5, 4, 3, 2, 1]

例2 

自定义函数,根据字符串的长度排序的例子

#!/usr/bin/python
# coding=utf-8

# 定义函数按照字符串的长度排序
def sort_by_len(e):
    return len(e)

lst = ['yxjc123','jd','baidu','sohu']
print("自定义函数正序排序:", sorted(lst, key=sort_by_len))
print("自定义函数倒序排序:", sorted(lst, key=sort_by_len,  reverse=True))

程序运行结果:

自定义函数正序排序: ['jd', 'sohu', 'baidu', 'yxjc123']
自定义函数倒序排序: ['yxjc123', 'baidu', 'sohu', 'jd']