Sortering värden är vanligt i de flesta programmeringsspråk . På grund av detta , och på grund av Python fokus på samlingar av data såsom listor , de Python biblioteken innehåller en sorts metod , som kallas " sorteras ", som hanterar sorteringsoperationer . Och medan listan datatyp har också en egen sorts metod , representerar den externa " sorteras " metoden ett mer mångsidigt alternativ i många situationer . Den List.sort ( ) Metod
För sortering listor på plats , skulle en programmerare använder vanligtvis " sort ( ) " metoden internt till listan datatypen . Den sort metoden tar den aktuella listan och sorterar i stigande ordning , som i detta exempel :
>>> L = [ 5 , 4 , 7 , 2 , 1 ]
>>> l.sort ( ) katalog
>>> L
[ 1 , 2 , 4 , 5 , 7 ]
listan kommer nu återstår sorteras där programmeraren bör besluta att passera den eller använda den .
" sorteras ( ) " Method
" sorteras ( ) " metoden utför samma operation på dess mest grundläggande användning . Med en lista , kommer den sorterade metoden sortera värdena i listan i stigande ordning :
>>> L2 - [ 6 , 8 , 4 , 3 , 2 , 5 ]
>>> sorterade ( L2 ) katalog
[ 2 , 3 , 4 , 5 , 6 , 8 ]
Både list.sort ( ) och sorteras ( ) metoder accepterar också en "omvänd " argument , som kommer att sortera värdena i fallande ordning :
>>> l.sort ( bakåt = Sant ) katalog
>>> l
[ 7 , 5 , 4 , 2 , 1 ]
>>> sorteras ( L2 , reverse = Sant ) katalog
>>> l2
[ 8 , 6 , 5 , 4 , 3 , 2 ]
Sortering listor med värden
Vissa listor kan innehålla värden baserade på faktiska organisera data , snarare än bara en lista med siffror eller strängar . En grupp av listor som innehåller en anställds namn , ålder och ID kan likna dessa exempel :
>>> e1 = [ ' Bob ' , 29 , 1 ]
> ; >> e2 = [ ' Jane ' , 27 , 2 ]
>>> e3 = [ ' Jill ' , 31 , 3 ]
En programmerare sortering dessa listor kanske vill sortera efter det andra värdet som representerar ålder . Programmeraren kan ge en extra " nyckel " parametern exklusiva för sorterade klass som tillåter programmeraren att sortera baserat på specifika värden , som i detta exempel :
>>> import operatör
>>> anställda = [ e1 , e2 , e3 ] //en förteckning över anställda listor
>>> sorteras ( anställda , nyckel = operator.itemgetter ( 1 ) )
[ [ ' Jane ' , 27 , 2 ] , [ ' Bob ' , 29 , 1 ] , [ ' Jill ' , 31 , 3 ] ]
Metoder och söka
sorterade klassen gör också en programmerare för att sortera listor som baseras på avkastningen värden metodanrop , med hjälp av " methodcaller " som ett argument . Till exempel kan programmeraren vill sortera värden baserade på antalet förekomster av bokstaven " x " i varje post , som i detta exempel :
>>> import operatör
>>> l4 = [ ' rrrxxxyxx ' , ' xxxtx ' , ' x ' ]
>>> sorteras ( L4 , nyckel = operator.methodcaller ( ' count ' , ' x ' ) ) katalog
[ ' x ' , ' xxxtx ' , ' rrrxxxyxx ' ]