python sorted
本文内容纲要:
-Sortingbasic:
-Sortingcmp:
-Sortingkeys:
-Sortingreverse:
我们需要对List进行排序,Python提供了两个方法
对给定的ListL进行排序,
方法1.用List的成员函数sort进行排序
方法2.用built-in函数sorted进行排序(从2.4开始)
--------------------------------sorted---------------------------------------
help(sorted)
Helponbuilt-infunctionsortedinmodule__builtin__:
sorted(...)
sorted(iterable,cmp=None,key=None,reverse=False)-->newsortedlist
---------------------------------sort----------------------------------------
help(list.sort)
Helponmethod_descriptor:
sort(...)
L.sort(cmp=None,key=None,reverse=False)--stablesort*INPLACE*;
cmp(x,y)->-1,0,1
-----------------------------------------------------------------------------
iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则.reverse=True或者reverse=False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
注;一般来说,cmp和key可以使用lambda表达式。
sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
Sortingbasic:
>>>printsorted([5,2,3,1,4])
[1,2,3,4,5]
>>>L=[5,2,3,1,4]
>>>L.sort()
>>>printL
[1,2,3,4,5]
Sortingcmp:
L=[('b',2),('a',1),('c',3),('d',4)]
printsorted(L,cmp=lambdax,y:cmp(x[1],y[1]))
[('a',1),('b',2),('c',3),('d',4)]
Sortingkeys:
L=[('b',2),('a',1),('c',3),('d',4)]
printsorted(L,key=lambdax:x[1]))
[('a',1),('b',2),('c',3),('d',4)]
Sortingreverse:
>>>printsorted([5,2,3,1,4],reverse=True)
[5,4,3,2,1]
>>>printsorted([5,2,3,1,4],reverse=False)
[1,2,3,4,5]
注:效率key>cmp(key比cmp快)
在SortingKeys中:我们看到,此时排序过的L是仅仅按照第二个关键字来排的,如果我们想用第二个关键字
排过序后再用第一个关键字进行排序呢?
>>>L=[('d',2),('a',4),('b',3),('c',2)]
>>>printsorted(L,key=lambdax:(x[1],x[0]))
>>>[('c',2),('d',2),('b',3),('a',4)]
以上环境python2.4
本文内容总结:Sortingbasic:,Sortingcmp:,Sortingkeys:,Sortingreverse:,
原文链接:https://www.cnblogs.com/65702708/archive/2010/09/14/1826362.html