Onderwerpen

Schotel

Comprehensions

Deze week leer je een lus die een nieuwe lijst opbouwt korter op te schrijven, als list comprehension: [len(word) for word in words] is in één regel wat een lus met append in vier regels doet. Met accolades bouw je op dezelfde manier een set of een dictionary op, als set comprehension of dict comprehension. Daarbij leer je drie hulpmiddelen: enumerate geeft je bij elk element ook zijn positie, zip loopt twee lijsten naast elkaar langs, en de conditionele expressie a if c else b kiest per element een waarde.

Het eerste college behandelt de list comprehension, met range, enumerate, zip en de conditionele expressie. Dat heb je nodig voor het eerste deel van de opstap. Het tweede college behandelt dict en set comprehensions, een lijst van lijsten, ook met een geneste comprehension, en wanneer je beter een lus houdt. Dat heb je nodig voor het tweede deel van de opstap, voor de basis en voor de extra. In het werkcollege maak je met deze vormen een register bij een tekst.

Aan het eind van de week kun je een lus die een lijst, set of dictionary opbouwt herschrijven als comprehension, en een comprehension terugschrijven als lus. En je kunt uitleggen wanneer een lus de betere keuze blijft.

Waar je vandaan komt

In week 4 van Programmeren 1 leerde je het lusrecept: wat verzamel je, wat loop je langs, wat gebeurt er per stap? Een comprehension is dat recept in één uitdrukking, voor het geval dat je een nieuwe verzameling opbouwt. In week 1 van Programmeren 2 leerde je dictionaries, sets en .items(), en telde je de woorden van een tekst. Deze week bouw je daarop voort, met dezelfde teksten.