系统函数sorted() 函数对所有可迭代的对象进行排序操作。
sorted(iterable, cmp=None, key=None, reverse=False)
#对列表进行排序
>>> a = [5,3,4,2,1]
>>> print(sorted(a))
#再次输出原来的列表 a
>>> print(a)
-------------------------------------------------------
[1, 2, 3, 4, 5]
[5, 3, 4, 2, 1]
#对列表进行排序, reverse 参数值改为 True,可实现降序排序
a = [5,3,4,2,1]
print(sorted(a,reverse=True))
-------------------------------------------------------
[5, 4, 3, 2, 1]
>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1]) # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
示例一:字符串列表排序
以下示例使用 sorted() 函数对字符串列表按照字母顺序进行排序:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer'] sorted_guests = sorted(guests) print(guests) print(sorted_guests)
输出结果如下:
['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer'] ['James', 'Jennifer', 'John', 'Mary', 'Patricia', 'Robert']
从输出结果可以看出,原始列表并没有改变。sorted() 函数基于原始列表返回了一个新的有序列表。
以下示例使用 sorted() 函数对 guests 列表进行反向排序:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer'] sorted_guests = sorted(guests, reverse=True) print(sorted_guests)
输出结果如下:
['Robert', 'Patricia', 'Mary', 'John', 'Jennifer', 'James']