Ga naar hoofdinhoud

10b Lijst-methoden

Je kunt nu een lijst maken, opvragen en doorlopen. Met methoden verander je een lijst: elementen toevoegen, verwijderen of invoegen.

De belangrijkste methoden​

Net als bij strings hebben lijsten methoden die je met een punt aanroept:

MethodeWat doet hij?
lijst.append(x)Voeg x toe aan het einde
lijst.insert(i, x)Voeg x toe op positie i
lijst.remove(x)Verwijder de eerste x uit de lijst
lijst.pop()Verwijder het laatste element en geef het terug
lijst.pop(i)Verwijder het element op positie i en geef het terug
dieren = ["kat", "hond", "vis"]

dieren.append("vogel")
print(dieren) # ['kat', 'hond', 'vis', 'vogel']

dieren.remove("hond")
print(dieren) # ['kat', 'vis', 'vogel']

laatste = dieren.pop()
print(laatste) # vogel
print(dieren) # ['kat', 'vis']

.remove("hond") geeft niets terug; .pop() geeft het verwijderde element wél terug, zodat je het kunt opvangen.

Anders dan bij een tekst veranderen deze methoden de lijst zelf. "hallo".upper() liet de tekst zoals hij was, dieren.append("vogel") verandert dieren.

Handige ingebouwde functies​

Voor lijsten van getallen heb je vaak geen loop nodig:

getallen = [3, 1, 4, 1, 5]

print(len(getallen)) # 5
print(sum(getallen)) # 14
print(min(getallen)) # 1
print(max(getallen)) # 5
print(sorted(getallen)) # [1, 1, 3, 4, 5]
getallen = [3, 1, 2]

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

Er gaat iets mis​

Iets weghalen dat er niet in zit

dieren = ["kat", "vis"]
dieren.remove("hond")

Uitvoer:

ValueError: list.remove(x): x not in list

Er zit geen hond in de lijst. Controleer het eerst: if "hond" in dieren:.

Het resultaat van append bewaren

dieren = ["kat", "vis"]
dieren = dieren.append("hond")
print(dieren) # None

Geen foutmelding, maar je lijst is weg. append verandert de lijst zelf en geeft niets terug, dus dieren wordt None. Schrijf alleen dieren.append("hond"), zonder dieren = ervoor.


Opdracht 10b.1: Boodschappenlijstje​

Maak een lijst boodschappen met "brood" en "melk". Voeg daarna "appels" toe en print de lijst.

# Schrijf hier je code
Klik hier voor een tip.

boodschappen.append("appels") voegt het achteraan toe.

Klik hier voor de oplossing.
boodschappen = ["brood", "melk"]

boodschappen.append("appels")

print(boodschappen)

Uitvoer: ['brood', 'melk', 'appels'].

boodschappen = ["brood", "melk"]

boodschappen.append("appels")

print(boodschappen)

Opdracht 10b.2: Cijfergemiddelde​

Gegeven een lijst cijfers, bereken het gemiddelde en tel hoeveel cijfers een voldoende (>= 5.5) zijn.

Verwachte uitvoer:

Gemiddelde: 6.2
Aantal voldoendes: 6
# Schrijf hier je code
Klik hier voor een tip.

sum(cijfers) / len(cijfers) voor het gemiddelde. In een loop: if cijfer >= 5.5: → aantal_voldoende += 1.

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

gemiddelde = sum(cijfers) / len(cijfers)

aantal_voldoende = 0
for cijfer in cijfers:
if cijfer >= 5.5:
aantal_voldoende += 1

print(f"Gemiddelde: {gemiddelde}")
print(f"Aantal voldoendes: {aantal_voldoende}")
cijfers = [7, 4, 8, 5, 9, 3, 6, 8, 5, 7]

gemiddelde = sum(cijfers) / len(cijfers)

aantal_voldoende = 0
for cijfer in cijfers:
    if cijfer >= 5.5:
        aantal_voldoende += 1

print(f"Gemiddelde: {gemiddelde}")
print(f"Aantal voldoendes: {aantal_voldoende}")

Opdracht 10b.3: To-do lijst manager​

Bouw een to-do lijst met drie functies:

  • toon_taken(taken): print alle taken genummerd
  • voeg_toe(taken, taak): voegt een taak toe
  • verwijder(taken, nummer): verwijdert de taak op die plek (de gebruiker telt vanaf 1)

De functies krijgen de lijst als parameter en veranderen hem met append en pop. Dat werkt zonder global en zonder return: je maakt geen nieuwe variabele, je past de lijst aan die je meekreeg.

Verwachte uitvoer:

Toegevoegd: Python oefenen
Toegevoegd: Boodschappen doen
Toegevoegd: Kamer opruimen
=== Mijn To-Do Lijst ===
1. Python oefenen
2. Boodschappen doen
3. Kamer opruimen

=== Mijn To-Do Lijst ===
1. Python oefenen
2. Kamer opruimen

# Schrijf hier je code
Klik hier voor een tip.
  • voeg_toe: één regel, taken.append(taak).
  • verwijder: taken.pop(nummer - 1). De -1 is nodig omdat de gebruiker bij 1 begint te tellen, maar Python bij 0.
Klik hier voor de oplossing.
def toon_taken(taken):
print("=== Mijn To-Do Lijst ===")
for i in range(len(taken)):
print(f" {i + 1}. {taken[i]}")
print()

def voeg_toe(taken, taak):
taken.append(taak)
print(f"Toegevoegd: {taak}")

def verwijder(taken, nummer):
taken.pop(nummer - 1)

mijn_taken = []

voeg_toe(mijn_taken, "Python oefenen")
voeg_toe(mijn_taken, "Boodschappen doen")
voeg_toe(mijn_taken, "Kamer opruimen")
toon_taken(mijn_taken)

verwijder(mijn_taken, 2)
toon_taken(mijn_taken)

Een lijst werkt met posities ([0], [1], ...). In de volgende les leer je dictionaries: waardes opzoeken via een naam in plaats van een nummer.

def toon_taken(taken):
    print("=== Mijn To-Do Lijst ===")
    for i in range(len(taken)):
        print(f"  {i + 1}. {taken[i]}")
    print()

def voeg_toe(taken, taak):
    taken.append(taak)
    print(f"Toegevoegd: {taak}")

def verwijder(taken, nummer):
    taken.pop(nummer - 1)

mijn_taken = []

voeg_toe(mijn_taken, "Python oefenen")
voeg_toe(mijn_taken, "Boodschappen doen")
voeg_toe(mijn_taken, "Kamer opruimen")
toon_taken(mijn_taken)

verwijder(mijn_taken, 2)
toon_taken(mijn_taken)
Waar kom je dit later weer tegen?

De torens van Hanoi speel je na met .pop() en .append(): de bovenste schijf van de ene paal pakken en op de andere leggen.