We gaan even bekijken of de "wiskundige" basisbewerkingen (optelling, aftrekking, vermenigvuldiging en deling) kunnen toegepast worden op lijsten. Voor bewerkingen die niet toegestaan zijn of niet het gewenste resultaat opleveren, gaan we op zoek naar een alternatief.
We gaan onderzoeken hoe we elementen kunnen toevoegen aan een lijst.
We starten steeds met een lege lijst, een lijst zonder elementen/
leeg = [ ]
Als eerste gaan we proberen door gewoon de data toe te voegen met een plus teken
Het is duidelijk dat we geen element kunnen toevoegen (concatenate = aaneenschakelen) door gewoon het plus-teken te gebruiken.
We kunnen enkel lijsten toevoegen aan een lijst. We gaan onze data daarom tussen vierkante haken moeten plaatsen.
Merk op dat in ons voorbeeld de waarde niet echt "geplaatst" wordt in de lijst leeg omdat er geen toewijzing plaatsvindt.
Omdat de lijst leeg is kan je gewoon de lijst ["jurgen"] toewijzen aan de lijst leeg.
leeg = ["Jurgen"]
Een tweede manier is
leeg = leeg + ["Jurgen"]
En tenslotte kan je ook de data toevoegen met de append- en externd-methode.
lijst = ["Jurgen"]
lijst.append("Nijs")
lijst.append(38)
lijst.extend(['Peeters',45])
append( )-methode;
append wordt gebruikt om één element aan het einde van de lijst toe te voegen.
Het neemt slechts één argument (parameter), het element dat aan de lijst moet worden toegevoegd.
extend( )-methode:
extend wordt gebruikt om elementen van een collectie (bijvoorbeeld een lijst, tuple, string) aan het einde van de lijst toe te voegen.
Het accepteert een collectie als argument en voegt elk element van die collectie toe aan de lijst.
Wanneer je een element moet toevoegen in het midden van een lijst, dan gebruiken we de insert-methode
lijst = ['Jurgen','Nijs',38,'Peeters',45]
lijst.insert(3,'Marc')
Zoals je ziet heeft de insert-methode 2 argumenten: <lijst>.insert(<index>,<element>)
<index>: de index die het element krijgt dat je gaat toevoegen.
<element>: het element dat je gaat toevoegen.
Opmerking:
De extend-methode gaat elk element van de collectie toevoegen als element.
Dit kan soms onverwachte resultaten opleveren.
Voorbeeld:
Onderstaand script vaagt aan de gebruiker het product en het aantal dat er moet aangekocht worden.
Het script plaats deze data in een lijst, en toont telkens bij wijziging de nieuwe lijst.
In de lijst ga je afwisselend de naam van een product (string) en het aantal (integer) krijgen. Een lijst moet dus niet homogeen, volledig uit hetzelfde type data bestaan, maar je kan verschillende data types combineren.
De lus stop als er bij het product niet ingegeven wordt maar gewoon op enter gedrukt wordt;.
Code: Klik op de pijl om de code te kunnen downloaden
#Boodschappen
boodschappen=[]
product = input("Product: ")
while product!="":
boodschappen = boodschappen + [product]
print(boodschappen)
aantal = int(input("Aantal: "))
boodschappen = boodschappen + [aantal]
print(boodschappen)
print()
product = input("Product: ")
Alternatief script
In het vorige script gaan we het product en het aantal apart toevoegen, maar dat kan ook in één stap
#Boodschappen
boodschappen=[]
product = input("Product: ")
while product!="":
#boodschappen = boodschappen + [product]
#print(boodschappen)
aantal = int(input("Aantal: "))
boodschappen = boodschappen + [product,aantal]
print(boodschappen)
print()
product = input("Product: ")
Het voorbeeld laat duidelijk zien dat het verwijderen van elementen uit een lijst m.b.v. het min-teken niet is toegestaan. We gaan dus op zoek moeten gaan naar een andere manier om elementen uit de lijst te verwijderen.
Bij de optelling hebben we ook methoden gezien om elementen toe te voegen. Willen we een element verwijderen uit een lijst, dan gaan we een methode moeten gebruiken.
pop( )-methode
De pop()-methode is een een ingebouwde methode voor lijsten. Deze methode wordt gebruikt om een element van een lijst te verwijderen op basis van de opgegeven index (standaard is het laatste element van de lijst).
Merk op dat pop() de lijst verandert en ook de waarde teruggeeft van het verwijderde element.
Als je geen index opgeeft, wordt het laatste element verwijderd.
remove( )-methode
IDe remove()-methode is een ingebouwde methode voor lijsten.
Deze methode wordt gebruikt om het eerste voorkomen van een specifieke waarde in de lijst te verwijderen. Als de waarde niet wordt gevonden, resulteert dit in een ValueError.
Met slicing kan je deel deellijst maken van een lijst.
De algemen syntaxis is
<lijst>[<begin>:<einde>:<stap>]
<begin>: index van het eerste element van je deellijst
<einde>: index van het eerste element dat NIET tot je deellijst hoort
<stap>: om de hoeveel elementen je een element overneemt naar de deellijst. Indien niet aanwezig --> <stap> = 1
Voorbeeld:
namen = ['Jan','Piet','Joeri','Peter','An','Els','Kathleen','Mieke']
sub_naam = namen[1:7:2]
print(sub_naam)
#output: ['Piet','Peter','Els']
Wanneer <begin> en <einde> niet gegeven is, dan wordt respectievelijk vanaf het begin, en/of tot het einde genomen.
namen = ['Jan','Piet','Joeri','Peter','An','Els','Kathleen','Mieke']
sub_naam = namen[::2]
print(sub_naam)
#output: ['Jan','Joeri','An','Kathleen']
Je kan ook gebruik maken van een negatieve stap.
Wanneer we met een negatieve stap werken, dan ga je elementen selecteren van rechts naar links, van de hoogste index naar de laagste index. Om die reden zal <begin> groter zijn dan <einde>.
namen = ['Jan','Piet','Joeri','Peter','An','Els','Kathleen','Mieke']
sub_naam = namen[7:1:-2]
print(sub_naam)
#output: ['Mieke','Els','Peter']
Het element met de index die overeenkomt met <start> zal het eerste element zijn van de deelstring.
Het element met de index die overeenomt met <einde> zal het eerste element zijn dat er juist niet kan bijhoren.
Door gebruik te maken van onderstaande code kan je een lijst volledig omkeren
<lijst>[::-1]