Skip to content
Programmeren in Python, leer de nieuwste technieken
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen
  • Tools
    • Python Paste
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen
  • Tools
    • Python Paste

Introductie

3
  • 1.1 Wat is Python?
  • 1.2 Python installatie
  • 1.3 PyCharm Installatie

Basisprogrammering

6
  • 2.1 Python Basis: Variabelen, Datatypes en Operatoren
  • 2.2 Python if else (en elif)
  • 2.3 Python list (Array, Lijsten)
  • 2.4 Lussen: for, while, break, continue
  • 2.5 Functies: Definities, Parameters en Terugkeerwaarden
  • 2.6 Foutafhandeling: try, except, else, finally

Datatypes

13
  • 3.1 Introductie tot Geavanceerde Datatypes
  • 3.2 Python Tuple
  • 3.3 Python Set
  • 3.4 Python Dictionary
  • 3.5 Werken met Strings en String-methoden
  • 3.6 Collections Module: Krachtige Tools in Python
  • 3.7 Iterators en Generators
  • 3.8 List Comprehensions
  • 3.9 Geavanceerde Sortering
  • 3.10 Werken met Multi-dimensionale Data
  • 3.11 Typing en Datatypes
  • 3.12 Itertools voor Geavanceerde Iteraties
  • 3.13 Data Conversies

Modules

8
  • 4.1 Wat zijn Modules en Waarom zijn ze Belangrijk?
  • 4.2 Werken met Ingebouwde Modules
  • 4.3 Installeren en Gebruiken van Externe Pakketten
  • 4.4 Eigen Modules Maken
  • 4.5 Introductie tot Pakketten
  • 4.6 Importeren en Namespaces Begrijpen
  • 4.7 Geavanceerd: Relatief Importeren
  • 4.8 Organiseren van Grotere Projecten

Data Analyse

3
  • 5.1 Python Dataframe en Data Opschonen met Pandas
  • 5.2 Python Pandas Basisstatistieken en Data-analyse
  • 5.3 Python Numpy (NpArray): De Kracht van Numerieke Berekeningen

Webontwikkeling

5
  • 7.1 Inleiding tot Webontwikkeling
  • 7.2 HTTP-Verzoeken met requests: Communiceren met het Web
  • 7.3 Webscraping met BeautifulSoup: Data van het Web Halen als er geen APIs zijn
  • 7.4 Python Flask, een webserver & API tutorial
  • 7.5 WSGI & WebOb

Deploy

1
  • Deploy met Supervisor op Ubuntu
View Categories
  • Home
  • Documentatie
  • Datatypes
  • 3.9 Geavanceerde Sortering

3.9 Geavanceerde Sortering

4 minuten leestijd

Sorteren is een fundamentele vaardigheid in programmeren, en Python maakt het ongelooflijk eenvoudig én flexibel. Met de ingebouwde functie sorted() kun je niet alleen lijsten alfabetisch of numeriek sorteren, maar ook je eigen logica toevoegen om de volgorde te bepalen. Dit doe je met de key-parameter en, vaak, lambda-functies. Dit hoofdstuk laat je zien hoe je geavanceerde sorteringen uitvoert en je programma’s slimmer maakt. 🎉

Sorteren met custom logica #

De standaard functie sorted() sorteert lijsten op natuurlijke volgorde, zoals cijfers van klein naar groot of strings alfabetisch. Maar wat als je op een complexere manier wilt sorteren, zoals:

  • Strings op basis van hun lengte?
  • Dictionaries op een specifieke waarde?

Daar komt de key-parameter van pas! Hiermee kun je aangeven welke eigenschap van elk item moet worden gebruikt bij het sorteren.

Syntax van sorted() met key #

sorted(iterable, key=functie, reverse=False)
Python

  • iterable: De lijst of collectie die je wilt sorteren.
  • key: Een functie die bepaalt waarop gesorteerd wordt.
  • reverse: Standaard False, maar zet op True om in omgekeerde volgorde te sorteren.

Voorbeelden van geavanceerde sortering #

1. Sorteren op lengte van strings #

Stel dat je een lijst van woorden hebt en deze wilt sorteren op basis van hun lengte in plaats van alfabetische volgorde.

Voorbeeld:

woorden = ["appel", "banaan", "kers", "mango"]

# Sorteer op lengte
gesorteerd = sorted(woorden, key=len)
print(gesorteerd)  # ['kers', 'mango', 'appel', 'banaan']
Python

Wat gebeurt hier?

  • De len-functie wordt gebruikt als de key.
  • sorted() sorteert de woorden op basis van het resultaat van len.

Omgekeerde volgorde (langste eerst):

gesorteerd = sorted(woorden, key=len, reverse=True)
print(gesorteerd)  
# ['banaan', 'appel', 'mango', 'kers']
Python

2. Sorteren met een lambda-functie #

Een lambda-functie is een kleine anonieme functie die je direct kunt gebruiken als argument in key. Dit is handig als je een aangepaste logica wilt toepassen.

Voorbeeld: Sorteren op het laatste teken van elk woord

woorden = ["appel", "banaan", "kers", "mango"]

# Sorteer op het laatste teken
gesorteerd = sorted(woorden, key=lambda woord: woord[-1])
print(gesorteerd)  
# ['banaan', 'mango', 'appel', 'kers']
Python

Wat gebeurt hier?

  • De lambda-functie lambda woord: woord[-1] retourneert het laatste teken van elk woord.
  • sorted() gebruikt dit om de volgorde te bepalen.

3. Sorteren op een specifieke waarde in een dictionary #

Wat als je een lijst van dictionaries hebt en wilt sorteren op basis van een specifieke waarde? Geen probleem! Gebruik een lambda-functie om de waarde te selecteren.

Voorbeeld:

studenten = [
    {"naam": "Alice", "cijfer": 8},
    {"naam": "Bob", "cijfer": 6},
    {"naam": "Charlie", "cijfer": 9}
]

# Sorteer op 'cijfer'
gesorteerd = sorted(studenten, key=lambda student: student["cijfer"])
print(gesorteerd)
# [{'naam': 'Bob', 'cijfer': 6}, 
# {'naam': 'Alice', 'cijfer': 8}, 
# {'naam': 'Charlie', 'cijfer': 9}]
Python

Wat gebeurt hier?

  • De lambda-functie lambda student: student["cijfer"] geeft het cijfer van elke student terug.
  • sorted() gebruikt dit om de studenten te rangschikken.

4. Meerdere sorteercriteria #

Soms wil je sorteren op meerdere eigenschappen, bijvoorbeeld eerst op leeftijd en dan alfabetisch op naam. Dit kun je bereiken door een tuple terug te geven in de key.

Voorbeeld:

personen = [
    {"naam": "Alice", "leeftijd": 30},
    {"naam": "Bob", "leeftijd": 25},
    {"naam": "Charlie", "leeftijd": 25}
]

# Sorteer op leeftijd, en bij gelijke leeftijd op naam
gesorteerd = sorted(personen, key=lambda persoon: (persoon["leeftijd"], persoon["naam"]))
print(gesorteerd)
# [{'naam': 'Bob', 'leeftijd': 25}, 
# {'naam': 'Charlie', 'leeftijd': 25}, 
# {'naam': 'Alice', 'leeftijd': 30}]
Python

Wat gebeurt hier?

  • De lambda-functie retourneert een tuple (leeftijd, naam).
  • sorted() gebruikt eerst de leeftijd om te sorteren, en bij een gelijke leeftijd de naam.

Tips voor geavanceerde sortering #

  1. Gebruik ingebouwde functies waar mogelijk:
    Python-functies zoals len, str.lower, en int werken perfect met key en zijn snel.
  2. Gebruik lambda voor maatwerk:
    Lambda-functies zijn ideaal voor eenvoudige sorteerlogica zonder dat je aparte functies hoeft te definiëren.
  3. Complexere logica? Maak een aparte functie:
    Als de sorteerlogica ingewikkeld wordt, definieer dan een aparte functie in plaats van een lambda.
def laatste_teken(woord):
    return woord[-1]

gesorteerd = sorted(woorden, key=laatste_teken)
Python

Samenvatting #

Geavanceerde sortering met sorted() en de key-parameter maakt het mogelijk om lijsten en andere iterables op vrijwel elke denkbare manier te ordenen. Of je nu woorden op lengte wilt sorteren, dictionaries wilt rangschikken op specifieke waarden, of meerdere criteria wilt combineren, Python biedt een elegante oplossing.

Met lambda-functies kun je sorteerlogica op maat maken, terwijl de ingebouwde functies zoals len en str.lower je nog meer kracht geven. Experimenteer met de voorbeelden en ontdek hoe sorteren je programmeerwerk eenvoudiger en effectiever kan maken. 🚀🎉

Updated on december 23, 2024
3.8 List Comprehensions3.10 Werken met Multi-dimensionale Data
Inhoudsopgave
  • Sorteren met custom logica
    • Syntax van sorted() met key
  • Voorbeelden van geavanceerde sortering
    • 1. Sorteren op lengte van strings
    • 2. Sorteren met een lambda-functie
    • 3. Sorteren op een specifieke waarde in een dictionary
    • 4. Meerdere sorteercriteria
  • Tips voor geavanceerde sortering
  • Samenvatting
Programmeren in Python

Leer python op je eigen tempo met mooie interactieve hedendaagse voorbeelden.

© Copyright 2025 Programmeren in Python.
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in