目录

常用内置函数

目录

sorted函数

sorted或者list.sort这类的排序都是稳定的(stable)。

sorted函数用来对序列( 列表、元组、字典、集合和字符串 等)进行排序(默认是升序排列)。其语法格式如下:

1
list = sorted(iterable, key=None, reverse=False)  
示例:简单使用sorted
1
2
3
a = [1, 2, 3, 4, 5, 7, 6]

print(sorted(a))  # [1, 2, 3, 4, 5, 6, 7]

通过reverse参数可以降序排列:

1
2
3
a = [1, 2, 3, 4, 5, 7, 6]

print(sorted(a, reverse=True))  # [7, 6, 5, 4, 3, 2, 1]

还可以使用key这个参数自定义排序的方式。key参数的值应该是一个函数(或其他可调用的),它接受一个参数并返回一个用于排序目的的

示例:使用key自定义排序
1
2
3
4
5
6
7
a = ["av", "ab", "dfde", "aerwe", "wtew"]

print(sorted(a))  # ['ab', 'aerwe', 'av', 'dfde', 'wtew']

# 通过字符串的长度来排序
print(sorted(a,
             key=lambda x: len(x))) # ['av', 'ab', 'dfde', 'wtew', 'aerwe']

Python提供了便利功能,使访问器功能更容易,更快捷。operator模块有itemgetter()attrgetter()methodcaller()函数。并且可以利用operator模块实现多级排序,具体如下:

示例:使用operator多级排序
1
2
3
4
5
6
7
8
9
from operator import itemgetter

student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]

print(sorted(student_tuples, key=itemgetter(1, 2)))  # [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]

参考链接:官方有关排序的文档