sort(seq)

描述:sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

方法:

list.sort(iterable,cmp=None, key=None, reverse=False)

示例:

if __name__ == "__main__": list_a = [(1,'d'),(2,'b'),(3,'c')] list.sort(list_a,cmp = lambda x,y:cmp(x[1],y[1])) print list_a list.sort(list_a,cmp = lambda x,y:cmp(x[0],y[0])) print list_a list.sort(list_a,key = lambda x:x[1]) print list_a list.sort(list_a,reverse = True) print list_a

输出结果:

python sort函数用的什么排序算法(python列表排序函数sort)(1)

解析:

我们按参数进行解析,第一个参数是要排序的列表,这个自然不必多说。

第二个参数是cmp,这个是一个比较函数,函数的实体我们用了一个python内建的隐含函数lamdba,我们先来了解下lamdba 函数的使用方法

lambda

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

add = lambda x, y : x y

add(1,2) # 结果为3

示例中我们用 list.sort(list_a,cmp = lambda x,y:cmp(x[1],y[1]))

其中lambda x,y:cmp(x[1],y[1])就是用列表中第二个元素作比较,所以输出的就是:(2,'b'),(3,'c'),(1,'d')

list.sort(list_a,cmp = lambda x,y:cmp(x[0],y[0]))

这条语句的意思就是以第一个元素作比较,输出是:(1,'d'),(2,'b'),(3,'c')

第三个排序方法我们用了key这个参数

list.sort(list_a,key = lambda x:x[1]),这条语句的意思是用列表中的第二个元素比较,所以输出的就是:(2,'b'),(3,'c'),(1,'d')

最后一条用list.sort(list_a,reverse = True),reverse=True表示按降序排列,所以输出:,(3,'c'),(2,'b'),(1,'d')

,