sort与sorted是python中的排序函数。它们的最大区别在于sort是定义在list中的,对list起作用。而sorted则可以排序所有的可迭代对象
sort
首先我们来看一下sort的定义
L.sort(key=None, reverse=False)
,有两个可选参数key和reverse。key是排序的值,everse = True 降序 或者 reverse = False 升序
sorted
sorted(iterable, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order.
第一个参数为可迭代对象,其他参数同sort
sorted我们可以看到sorted直接返回了一个列表,这也是它和sort不一样的一个地方,sort会修改原来的列表的值,sorted则直接返回一个列表。
下面介绍参数的使用:
import operator
L = [('d',2),('a',4),('b',3),('c',2)]
print(sorted(L))
print(sorted(L,reverse=True))
print(sorted(L,key=lambda x:x[1]))
print(sorted(L,key=operator.itemgetter(1)))
# [('a', 4), ('b', 3), ('c', 2), ('d', 2)]
# [('d', 2), ('c', 2), ('b', 3), ('a', 4)]
# [('d', 2), ('c', 2), ('b', 3), ('a', 4)]
# [('d', 2), ('c', 2), ('b', 3), ('a', 4)]
网友评论