python怎么定义列表排序的函数(python列表排序函数sort)
python怎么定义列表排序的函数(python列表排序函数sort)lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。第二个参数是cmp,这个是一个比较函数,函数的实体我们用了一个python内建的隐含函数lamdba 我们先来了解下lamdba 函数的使用方法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 li
sort(seq)描述:sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
方法:
list.sort(iterable cmp=None key=None reverse=False)
- iterable --指定要排序的list或者iterable,不用多说
- cmp -- 可选参数 如果指定了该参数会使用该参数的方法进行排序。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序, 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
输出结果:
解析:
我们按参数进行解析,第一个参数是要排序的列表,这个自然不必多说。
第二个参数是cmp,这个是一个比较函数,函数的实体我们用了一个python内建的隐含函数lamdba 我们先来了解下lamdba 函数的使用方法
lambdalambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
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')