Junior
Wat zijn dictionary comprehensions in Python?
sobes.tech AI
Antwoord van AI
De woordenboekgenerator (dict comprehension) is een compacte syntax om woordenboeken te maken op basis van een iterabel object. Het stelt je in staat om paren "sleutel: waarde" te genereren met behulp van uitdrukkingen en optionele filtering.
Syntax:
# basis syntax
dict = {sleutel_uitdrukking: waarde_uitdrukking for item in iterable}
# met voorwaarde
dict = {sleutel_uitdrukking: waarde_uitdrukking for item in iterable if voorwaarde}
Voorbeelden:
Maak een woordenboek van kwadraten van getallen van 0 tot 4:
# woordenboek waarbij de sleutel het getal is en de waarde het kwadraat ervan
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Maak een woordenboek alleen voor even getallen:
# woordenboek van kwadraten van alleen even getallen
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
# even_squares = {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
Wissel sleutels en waarden om:
original_dict = {'a': 1, 'b': 2, 'c': 3}
# woordenboek met omgekeerde sleutels en waarden
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}
Voordelen:
- Beknoptheid: Meer compact dan equivalente
for-lussen. - Leesbaarheid: Vaak duidelijkere code voor eenvoudige transformaties.
- Efficiëntie: Kan in sommige gevallen iets sneller zijn dan
for-lussen.
Nadelen:
- Leesbaarheid bij complexe gevallen: Kan minder leesbaar worden voor zeer complexe logica.
- Geen bijwerkingen: Niet bedoeld voor acties die niet gerelateerd zijn aan het maken van het woordenboek (bijvoorbeeld iets afdrukken).