Hur man sorterar nästan vilken typ av lista som helst i Python

Hur man sorterar nästan vilken typ av lista som helst i Python

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 kommer att förklara hur du gör det i det här inlägget.





Hur man sorterar en lista i Python

Du kan sortera objekten i en lista eller array med 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() metod ordnar objekten i en lista i stigande ordning:



myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['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(reverse = True)
print(myList)
Output: ['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() metod med valfritt nyckel- argument:

myList = ['MUO', 'Python', 'JavaScript', 'Sort', 'Sortlists']
def sortLength(item):
return len(item)
myList.sort(reverse = True, key = sortLength)
print(myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Hur man sorterar en lista med ordlistor i Python

Du kan använda sortera() metod för att sortera en lista med ordböcker också.





Låt oss sortera uppgifterna i ordboken 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(item):
return item['Time']
myArray.sort(key = sortByTime)
print(myArray)

Eftersom tidsvärdena är heltal, ordnar ovanstående kodblock om arrayen baserat på uppgiftstiden.

Relaterad: Hur matriser 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 hakparentesen 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(item):
return item['Task']
myArray.sort(key = sortByTime)
print(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ända en lambda -funktion med sortera() för renare kod:

myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)

Hur man sorterar en kapslad pythonlista

Du kan sortera en kapslad lista med tupler efter indexet för varje kapslat element i listan.

Till exempel använder koden nedan det tredje objektet i varje tupel 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):
return a[2]
Alist.sort(key = sortByThirdIndex)
print(Alist)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

I utmatningen ovan ökar det tredje objektet i varje tupel från noll till tjugo i följd.

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.

Relaterat: Vad är en uppsättning i Python och hur man skapar en

bästa ftp -klient för Windows 10

För att ordna utmatningen i fallande ordning:

Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(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 = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Hur man sorterar en lista med metoden Sorted ()

Alternativt kan du använda sorterad() metod.

Även om det fungerar på samma sätt som sortera() metoden skapar den en ny sorterad lista utan att ändra originalet. Dess syntaxlayout är också något annorlunda.

Syntaxen för sorterad() metoden ser i allmänhet ut så här:

sorted(list, key = function, reverse = True/False)

Så för 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):
return a[2]
newList = sorted(Alist, key = getIndex)
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

De sorterad() metoden accepterar också a lambda fungerar som dess nyckel:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Var kan du tillämpa listasortering?

Ett effektivt grepp om Python -sorteringsmetoden är nödvändigt för effektiv programmering. Det låter dig styra hur en lista eller matris kommer igenom, och du kan alltid tillämpa den i verkliga projekt. Till exempel kan sortering av en Python-lista vara till nytta vid omarrangemang av data från ett API eller en databas, så det är mer meningsfullt för en slutanvändare.

Dela med sig Dela med sig Tweet E-post Hur man lägger till en lista i Python

Arbetar du med listor i Python? Här är vad du behöver veta om hur du använder Python append -funktionen när du arbetar med listor.

Läs Nästa
Relaterade ämnen
  • Programmering
  • Pytonorm
  • Handledning för kodning
Om författaren Idisou Omisola(94 artiklar publicerade)

Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen kring modern teknik motiverar honom att skriva mer.

Mer från Idowu Omisola

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera