Genom att sortera en lista i Python kan du ordna dess objekt i stigande eller fallande ordning.
Istället för att skriva långa kodblock för att göra det har Python en inbyggd metod som låter dig sortera objekten i valfri lista eller matris. Vi förklarar hur man gör det i det här inlägget.
Hur man sorterar en lista i Python
Du kan sortera objekten i en lista eller matris med hjälp av Python sortera() metod.
De sortera() metod i Python accepterar två valfria argument och syntaxen ser ut så här:
list.sort (key = function, reverse = True / False)
Som standard är sortera() metoden ordnar objekten i en lista i stigande ordning:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
skriva ut (myList)
Utgång: ['A', 'B', 'C', 'D', 'F']
Du kan använda omvänd argument för att visa listan i fallande ordning:
myList = ["C", "D", "B", "A", "F"]
myList.sort (omvänd = True)
skriva ut (myList)
Utgång: ['F', 'D', 'C', 'B', 'A']
Du kan också ordna objekten i en lista efter längden på varje sträng.
För att göra det, skapa en funktion och skicka den till sortera() metoden med tillvalet nyckel- argument:
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (artikel):
returnera len (artikel)
myList.sort (omvänd = True, key = sortLength)
skriva ut (myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Hur man sorterar en lista med ordböcker i Python
Du kan använda sortera() metod för att sortera en lista med ordböcker också.
Låt oss sortera uppgifterna i ordlistan nedan efter deras tid:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (artikel):
returnera artikel ["Time"]
myArray.sort (key = sortByTime)
skriva ut (myArray)
Eftersom värdena för tiden är heltal, ordnar ovanstående kodblock blocket baserat på uppgiftstiden.
Relaterad: Hur arrays och listor fungerar i Python
Förutom att sortera matrisen ovan efter tid kan du också ordna den alfabetiskt med hjälp av uppgifterna, som är strängar.
För att sortera efter sträng i exempelmatrisen behöver du bara ändra Tid i hakparentes till Uppgift:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (artikel):
returnera artikel ["Uppgift"]
myArray.sort (key = sortByTime)
skriva ut (myArray)
Du kan också sortera uppgifterna i omvänd ordning genom att ställa in omvänd till sant:
myArray.sort (key = sortByTime, reverse = True)
Du kan också använd en lambda-funktion med sortera() för renare kod:
myArray.sort (key = lambda getTime: getTime ["Time"])
skriva ut (myArray)
Hur man sorterar en kapslad Python-lista
Du kan sortera en kapslad lista med tuplar efter index för varje kapslat element i listan.
Till exempel använder koden nedan det tredje objektet i varje tuple för att sortera listan i stigande ordning:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
returnera en [2]
Alist.sort (key = sortByThirdIndex)
skriva ut (Alist)
Utgång: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
I produktionen ovan ökar det tredje objektet i varje tupel från noll till tjugo i rad.
Observera att detta inte fungerar med en Python-uppsättning eftersom du inte kan indexera den. Dessutom måste varje bo i listan tillhöra samma datatyp.
Relaterad: Vad är en uppsättning i Python och hur man skapar en
Men för att ordna utdata i fallande ordning:
Alist.sort (key = getIndex, reverse = True)
skriva ut (Alist)
Utgång: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Låt oss se hur detta ser ut med en lambda fungerar också:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorterad (Alist, key = lambda a: a [2])
skriva ut (newList)
Utgång: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Hur man sorterar en lista med hjälp av den sorterade () metoden
Alternativt kan du använda sorterad() metod.
Även om det fungerar på samma sätt som sortera() metod skapas en ny sorterad lista utan att originalet ändras. Dess syntaxlayout är också lite annorlunda.
Syntaxen för sorterad() metoden ser generellt ut så här:
sorterad (lista, tangent = funktion, omvänd = sant / falskt)
Så att sortera en lista med sorterad() metod måste du skapa en ny variabel för den sorterade listan:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
returnera en [2]
newList = sorterad (Alist, key = getIndex)
skriva ut (newList)
Utgång: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
De sorterad() metoden accepterar också en lambda fungerar som dess nyckel:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorterad (Alist, key = lambda a: a [2])
skriva ut (newList)
Utgång: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Var kan du använda listningssortering?
För att kunna programmera är det nödvändigt att förstå Pythons sorteringsmetod. Det låter dig styra hur en lista eller matris kommer igenom, och du kan alltid använda den i verkliga projekt. Till exempel kan sortering av en Python-lista vara till nytta när du ordnar om data från ett API eller en databas, så det är mer vettigt för en slutanvändare.
Arbetar du med listor i Python? Här är vad du behöver veta om att använda Python append-funktionen när du arbetar med listor.
Läs Nästa
- Programmering
- Pytonorm
- Kodningshandledning
Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han är uttråkad, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Ett steg till…!
Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.