Ga naar hoofdinhoud

10a Lijsten

Een variabele houdt één waarde vast. Wil je tien waardes bewaren, zoals een boodschappenlijstje, een klassenlijst of een rij cijfers, dan gebruik je een lijst (Engels: list).

Een lijst maken​

Zet de elementen tussen blokhaken, gescheiden door komma's:

kleuren = ["rood", "groen", "blauw"]

print(kleuren) # ['rood', 'groen', 'blauw']
print(len(kleuren)) # 3

len() geeft het aantal elementen in de lijst.

kleuren = ["rood", "groen", "blauw"]

print(kleuren[1])
Voorspel
Wat zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Een element opzoeken​

Elk element heeft een positie (index). Python begint met tellen vanaf 0:

kleuren = ["rood", "groen", "blauw"]

print(kleuren[0]) # rood (eerste)
print(kleuren[1]) # groen (tweede)
print(kleuren[2]) # blauw (derde)
print(kleuren[-1]) # blauw (laatste — handige truc)

-1 is altijd het laatste element, -2 het voorlaatste, enzovoort.

Door een lijst loopen​

Met een for-loop pak je elk element automatisch:

kleuren = ["rood", "groen", "blauw"]

for kleur in kleuren:
print(kleur)

Uitvoer:

rood
groen
blauw

In elke ronde krijgt kleur automatisch de volgende waarde uit de lijst.

Er gaat iets mis​

Een plek die niet bestaat

kleuren = ["rood", "groen", "blauw"]
print(kleuren[3])

Uitvoer:

IndexError: list index out of range

Drie elementen staan op plek 0, 1 en 2. Plek 3 bestaat niet. Het laatste element is kleuren[2], of kleuren[-1].

Ronde haakjes in plaats van blokhaken

kleuren = ["rood", "groen", "blauw"]
print(kleuren(0))

Uitvoer:

TypeError: 'list' object is not callable

Met ronde haakjes roep je een functie aan, en een lijst is geen functie. Een element opzoeken doe je met blokhaken: kleuren[0].

Eerst op papier

Speel dit eerst na zonder computer, met een rij bekertjes: Een rij bekertjes. Je docent kan de hand-out printen.


Opdracht 10a.1: Tweede element​

Maak een lijst getallen met de waardes 10, 20 en 30, en print het tweede element.

# Schrijf hier je code
Klik hier voor een tip.

Het tweede element heeft index 1, niet 2 — Python begint bij 0.

Klik hier voor de oplossing.
getallen = [10, 20, 30]

print(getallen[1])
getallen = [10, 20, 30]

print(getallen[1])

Opdracht 10a.2: Vruchten-lus​

Maak een lijst van 4 vruchten en print voor elk een zin: Ik hou van [vrucht]!.

Verwachte uitvoer:

Ik hou van appel!
Ik hou van banaan!
Ik hou van kers!
Ik hou van mango!
# Schrijf hier je code
Klik hier voor een tip.

Loop met for vrucht in vruchten: en gebruik een f-string met {vrucht}.

Klik hier voor de oplossing.
vruchten = ["appel", "banaan", "kers", "mango"]

for vrucht in vruchten:
print(f"Ik hou van {vrucht}!")
vruchten = ["appel", "banaan", "kers", "mango"]

for vrucht in vruchten:
    print(f"Ik hou van {vrucht}!")

Opdracht 10a.3: Hoogste cijfer vinden​

Gegeven een lijst cijfers, vind het hoogste cijfer zónder een ingebouwde functie te gebruiken. Loop door de lijst en vergelijk elk cijfer met de hoogste-tot-nu-toe.

Verwachte uitvoer (bij cijfers = [7, 4, 8, 5, 9, 3, 6]):

Het hoogste cijfer is: 9
# Schrijf hier je code
Klik hier voor een tip.

Begin met hoogste = cijfers[0]. In de loop: als cijfer > hoogste, sla dan cijfer op in hoogste.

Klik hier voor de oplossing.
cijfers = [7, 4, 8, 5, 9, 3, 6]

hoogste = cijfers[0]

for cijfer in cijfers:
if cijfer > hoogste:
hoogste = cijfer

print(f"Het hoogste cijfer is: {hoogste}")

In de volgende les leer je hoe je een lijst verandert: elementen toevoegen, verwijderen of invoegen.

cijfers = [7, 4, 8, 5, 9, 3, 6]

hoogste = cijfers[0]

for cijfer in cijfers:
    if cijfer > hoogste:
        hoogste = cijfer

print(f"Het hoogste cijfer is: {hoogste}")
Waar kom je dit later weer tegen?

Zoeken en sorteren zijn hoofdstukken lang met lijsten werken; op de conceptenkaart zie je hoeveel algoritmes op deze les draaien.