首页 文章资讯内容详情

python sorted

2026-06-01 3 花语

本文内容纲要:

-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