sort()

sort() sorteert de elementen van de list, van laag naar hoog. Als de elementen strings zijn, betreft het een alfabetische sortering. Als de elementen getallen zijn, betreft het een numerieke sortering. Als de elementen gemixt zijn, volgt een runtime error, tenzij bepaalde extra argumenten zijn meegegeven.

Om van hoog naar laag te sorteren, kun je een argument reverse=<boolean> meegeven.

Een ander argument dat je sort() kunt meegeven is een “key” (Engels voor sleutel). Je geeft dit argument mee volgens de syntax <list>.sort( key=<key> ), waarbij <key> een functie is die één element meekrijgt (namelijk het element dat gesorteerd moet worden) en die een waarde retourneert die als sorteringssleutel gebruikt moet worden. Een typische toepassing van het key argument is als je een list van strings wilt sorteren, waarbij je de strings “case-insensitive” (dat wil zeggen zonder verschil te maken tussen hoofd- en kleine letters) wilt sorteren. Dus als key wil je de waarde van het element volledig als kleine letters gebruiken. Dat kun je doen door als key functie str.lower() mee te geven. Je roept dan de sort() methode aan als in het volgende voorbeeld:

Merk op dat je bij het key argument geen haakjes achter de functie naam zet. Dit is namelijk geen functie-aanroep, het is een argument dat Python vertelt welke functie gebruikt moet worden om de sorteringssleutel te genereren. Je kunt ook je eigen functies gebruiken als key. Bijvoorbeeld, in de volgende code wordt numlist gesorteerd met de cijfers van de drie-cijferige getallen in omgekeerde volgorde:

Hier is een ander voorbeeld, waarbij een list van strings gesorteerd wordt op string lengte als eerste (korte strings vóór lange strings), en alleen bij gelijke lengte op alfabetische volgorde:

Merk op dat de len_alfabetisch() functie een tuple retourneert. Zoals in hoofdstuk 12 werd uitgelegd, als je twee tuples vergelijkt worden eerst de eerste elementen van de tuples vergeleken, en alleen als die gelijk zijn worden de tweede elementen vergeleken.

Op dit punt kan ik een typisch voorbeeld geven van het gebruik van een “anonieme functie,” die ik introduceerde in hoofdstuk 9 (als je die niet hebt overgeslagen). Als je een anonieme functie gebruikt om de key voor een sort() methode te specificeren, in plaats van als een separate functie elders in het programma, houd je de code compact en leesbaar.