🧐 Wist je dat…
… je een
string
eigenlijk ook kan zien als een lijst? Het is een geordende opeenvolging van karakters. Bijvoorbeeld,'jonas' = ['j','o','n','a','s']
.
Toch is er een belangrijk verschil tussen een string
en een lijst!
Een lijst is muteerbaar: je kan de elementen aanpassen zonder dat je een nieuwe lijst moet maken. Een string
is niet muteerbaar: indien je de waarde wil aanpassen, dan moet je een nieuwe string
maken.
❗ Begrip - Muteerbaar
Een datastructuur is muteerbaar (mutable in het Engels) als de waarde ervan kan veranderen zonder die datastructuur opnieuw te moeten aanmaken.
Dat lijsten muteerbaar zijn is te verklaren aan de hand van het geheugen en de manier waarop lijsten opgeslagen worden.
👀 Voorbeeld - Namen in het geheugen
Indien we de klaslijst in het geheugen weergeven, dan ziet dat er als volgt uit. De lijst begint in geheugencel 15.
Indien we Esmee vervangen door Elia in de klaslijst, is het niet nodig een nieuwe lijst aan te maken.
We vervangen gewoon het geheugenadres op die plaats in de lijst zodat het wijst naar de string
'Elia'
in plaats van'Esmee'
. Het is wel nodig een nieuwe string'Elia'
aan te maken.Vergelijk de geheugencel op adres 18 in de twee tekeningen van het geheugen hierboven.
👀 Voorbeeld - Nieuwe leerlingen
De methode
lijst.append(elem)
voegt het elementelem
achteraan toe in de lijst.Er zijn een aantal nieuwe leerlingen in de klas. De lijst met leerlingen van stagiair Sem moet bijgewerkt worden. Patrick en Simon komen er bij. Sem voegt één voor één Patrick en Simon toe:
namen = ['Aram','Bea','Danilo','Esmee','Finn','Inaya','Nina'] print(namen) namen.append('Patrick') namen.append('Simon') print(namen)
🧐 Wist je dat…
… to append Engels is voor toevoegen of aanhangen?
❓ Vraag
Wat is het verschil tussen
lijst.func(arg)
enfunc(lijst,arg)
?
lijst.func(arg)
en func(lijst, arg)
betekenen eigenlijk hetzelfde: we vertellen de computer wat we met de lijst willen doen, maar dan op twee verschillende manieren. We noemen lijst.func(arg)
ook wel eens een methode die op lijst wordt toegepast. In de functie func(lijst, arg)
wordt die lijst als een extra parameter meegegeven.
💡 Hint
Als je een element toevoegt aan een lijst, voeg je dat achteraan toe. Patrick en Simon kunnen dus enkel worden toegevoegd met
lst.append(elem)
omdat hun voornaam alfabetisch achter de andere namen in de klaslijst komt.Hierbij is
lst
de lijst (namen) waaraan een element wordt toegevoegd enelem
het element (de naam) dat je wil toevoegen.Indien je zelf wil kiezen op welke plaats een naam wordt toegevoegd, kan je
lst.insert(index,elem)
gebruiken.
💻 Programmeeroefening - Op de juiste plaats
Pas in de editor de code hieronder aan om een nieuwe leerling genaamd Elsie toe te voegen op de juiste plaats in de alfabetische klaslijst. Gebruik
lst.insert(index,elem)
.namen = ['Aram','Bea','Danilo','Esmee','Finn','Inaya','Nina'] # voeg Elsie toe op de juiste plaats in de lijst. # print de aangepaste lijst van namen print(namen)
👀 Voorbeeld - Nieuwe leerlingen: In 1 moeite
Het gebeurt wel vaker dat je meer dan één element moet toevoegen aan een lijst. Daarom bestaat de
lst.extend(lst1)
methode waaraan je een lijst (lst1
) kan meegeven die dan in zijn geheel achteraan de oorspronkelijke lijst (lst
) wordt toegevoegd.Sem voegt Patrick en Simon in 1 keer toe:
namen = ['Aram','Bea','Danilo','Esmee','Finn','Inaya','Nina'] namen.extend(['Patrick', 'Simon']) print(namen)