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:
| Methode | Wat 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)
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 genummerdvoeg_toe(taken, taak): voegt een taak toeverwijder(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-1is nodig omdat de gebruiker bij1begint te tellen, maar Python bij0.
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)De torens van Hanoi speel je na met .pop() en .append(): de bovenste schijf van de ene paal pakken en op de andere leggen.