Door een lijst in Python te sorteren, kunt u de items in oplopende of aflopende volgorde rangschikken.

In plaats van daarvoor lange blokken code te schrijven, heeft Python een ingebouwde methode waarmee je de items in elke lijst of array kunt sorteren. In dit bericht leggen we uit hoe je dat doet.

Hoe een lijst in Python te sorteren

U kunt de items in een lijst of array sorteren met behulp van de Python soort() methode.

De soort() methode in Python accepteert twee optionele argumenten en de syntaxis ziet er als volgt uit:

list.sort (key = function, reverse = True / False)

Standaard is het soort() methode rangschikt de items van een lijst in oplopende volgorde:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
print (myList)
Uitvoer: ['A', 'B', 'C', 'D', 'F']

U kunt de omgekeerde argument om de lijst in aflopende volgorde te bekijken:

myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
print (myList)
Uitvoer: ['F', 'D', 'C', 'B', 'A']

U kunt de items in een lijst ook rangschikken op de lengte van elke string.

Om dit te doen, maakt u een functie aan en geeft u deze door aan het soort() methode met behulp van de optionele sleutel argument:

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

Hoe een lijst met woordenboeken in Python te sorteren

U kunt de soort() methode om ook een lijst met woordenboeken te sorteren.

Laten we de taken in het onderstaande woordenboek sorteren op tijd:

myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (item):
item retourneren ["Tijd"]
myArray.sort (key = sortByTime)
print (myArray)

Aangezien de waarden van tijd gehele getallen zijn, herschikt het bovenstaande codeblok de array op basis van de taaktijd.

Verwant: Hoe arrays en lijsten werken in Python

Naast het sorteren van de bovenstaande array op tijd, kunt u deze ook alfabetisch rangschikken met behulp van de taken, die strings zijn.

Om in de voorbeeldmatrix op tekenreeks te sorteren, hoeft u alleen maar te wijzigen Tijd in de vierkante haak naar Taak:

myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (item):
item retourneren ["Taak"]
myArray.sort (key = sortByTime)
print (myArray)

U kunt de taken ook in omgekeerde volgorde sorteren door in te stellen omgekeerde naar waar:

myArray.sort (key = sortByTime, reverse = True)

Je kan ook gebruik een lambda-functie met soort() voor schonere code:

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

Hoe een geneste python-lijst te sorteren

U kunt een geneste lijst met tupels sorteren op de index van elk genest element in die lijst.

De onderstaande code gebruikt bijvoorbeeld het derde item in elk tupel om de lijst in oplopende volgorde te sorteren:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
retourneer een [2]
Alist.sort (key = sortByThirdIndex)
print (Alist)
Uitgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

In de bovenstaande uitvoer wordt het derde item in elk tupel opeenvolgend verhoogd van nul tot twintig.

Merk op dat dit niet werkt met een Python-set, omdat je deze niet kunt indexeren. Bovendien moet elk nest in de lijst tot hetzelfde gegevenstype behoren.

Verwant: Wat is een set in Python en hoe maak je er een?

Om de uitvoer echter in aflopende volgorde te rangschikken:

Alist.sort (key = getIndex, reverse = True)
print (Alist)
Uitgang: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Laten we eens kijken hoe dit eruitziet met een lambda functie ook:

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

Hoe u een lijst kunt sorteren met de methode Sorted ()

Als alternatief kunt u de gesorteerd () methode.

Hoewel het op dezelfde manier werkt als het soort() methode, maakt het een nieuwe gesorteerde lijst zonder het origineel te wijzigen. De lay-out van de syntaxis is ook iets anders.

De syntaxis voor het gesorteerd () methode ziet er over het algemeen als volgt uit:

gesorteerd (lijst, sleutel = functie, omgekeerd = waar / niet waar)

Dus om een ​​lijst te sorteren met de gesorteerd () methode, moet u een nieuwe variabele maken voor de gesorteerde lijst:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
retourneer een [2]
newList = gesorteerd (Alist, key = getIndex)
print (nieuwe lijst)
Uitgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

De gesorteerd () methode accepteert ook een lambda functie als de sleutel:

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

Waar kunt u lijstsortering toepassen?

Een goed begrip van de Python-sorteermethode is noodzakelijk voor efficiënt programmeren. Hiermee kunt u bepalen hoe een lijst of array wordt weergegeven, en u kunt deze altijd toepassen in real-life projecten. Het sorteren van een Python-lijst kan bijvoorbeeld handig zijn bij het herschikken van gegevens uit een API of een database, zodat het logischer is voor een eindgebruiker.

E-mail
Een lijst toevoegen in Python

Werken met lijsten in Python? Dit is wat u moet weten over het gebruik van de Python-append-functie bij het werken met lijsten.

Lees Volgende

Gerelateerde onderwerpen
  • Programmeren
  • Python
  • Zelfstudies over codering
Over de auteur
Idowu Omisola (66 artikelen gepubliceerd)

Idowu is gepassioneerd door alles wat met slimme technologie en productiviteit te maken heeft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij houdt er ook van om af en toe de routine te doorbreken. Zijn passie om mensen de weg te wijzen in moderne technologie, motiveert hem om meer te schrijven.

Meer van Idowu Omisola

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.