Herhaling

Datatype Nederlands Beschrijving
Integer Geheel Getal Een geheel getal zonder decimalen, kan positief of negatief zijn. Voorbeeld: -5, 0, 42.
Float Kommagetal Een getal met decimalen, gebruikt voor waarden die een breuk kunnen zijn. Voorbeeld: 3.14, -0.001.
String Tekst Een reeks karakters, gebruikt om tekstuele informatie op te slaan. Voorbeeld: “Hallo”, ‘Python’.
Boolean NA Een logisch resultaat dat slechts twee waarden kan aannemen: True of False
Tuple NA Een onveranderlijke geordende reeks. Voorbeeld: (“banaan”, 2, 7)

Lijsten/Lists

Een “list” (Engelse woord voor “lijst”) is een geordende verzameling van data items, net zoals een tuple. Het verschil tussen lists en tuples is dat lists veranderbaar zijn. Dit maakt ze tot een zeer flexibele data structuur, waar je op veel manieren gebruik van kunt maken.

Een list is een verzameling (of “collectie”) elementen.

De elementen van een list zijn geordend. Omdat ze geordend zijn, kun je ieder element van een list benaderen via een index, net zoals je de tekens in een string kunt benaderen. De indices beginnen bij nul, net als bij strings.

In Python kun je lists herkennen aan het feit dat de elementen van een list tussen vierkante haken ([]) staan. Je kunt het aantal elementen in een list achterhalen door middel van de len() functie. Via een for loop kun je de elementen van de list doorlopen. Je mag data types in een list mixen. Je kunt de functies max(), min() en sum() gebruiken op een list. Je kunt testen of een element voorkomt in een list via de in operator (of het niet voorkomen van een element via de not in operator).

fruitlist = ["appel", "banaan", "kers", 27, 3.14]

print( len( fruitlist ) )

for element in fruitlist:
    print( element )

print( fruitlist[2] )

numlist = [314 , 315, 642, 246, 129, 999]

print( max( numlist ) )
print( min( numlist ) )
print( sum( numlist ) )
print( 100 in numlist )
print( 999 in numlist )

Lists zijn veranderbaar / mutable

Omdat lists veranderbaar (Engels: “mutable”) zijn, mag je de inhoud van een list wijzigen. Om een element van de list te overschrijven, kun je er een nieuwe waarde aan toekennen middels een assignment.

fruitlist = ["appel", "banaan", "kers", "doerian", "mango"]
print( fruitlist )
fruitlist[2] = "aardbei"
print( fruitlist )
fruitlist[1:3] = ["framboos", "aardbei", "aalbes"]
print( fruitlist )

Lists en rekenkundige operatoren

Onderzoek zelf:

fruitlist = ["appel", "banaan"] + ["kers", "doerian"]
print( fruitlist )
numlist = 10 * [0]
print( numlist )
fruitlist = ["appel", "banaan"]
fruitlist += "kers"
print( fruitlist )
fruitlist = ["appel", "banaan"]
fruitlist += ["kers"]
print( fruitlist )

List methodes

Python heeft een groot aantal methodes die lists wijzigen of informatie uit lists halen. Je hoeft geen module te importeren om ze te gebruiken. Omdat het methodes betreft, gebruik je de syntax .().

Belangrijk! Lists zijn veranderbaar en deze methodes veranderen vaak de list waarop ze werken! Dit is niet wat je gewend bent met string methodes, waarbij de methodes een nieuwe string maken en die retourneren, zonder de originele string aan te passen. De meeste list methodes hebben daarentegen een onomkeerbaar effect op de list waarop ze werken. Meestal hebben ze ook geen retourwaarde, en die heb je ook niet nodig, omdat het doel van de methodes is de list te wijzigen.

Aan de lengte van deze niet uitgeputte lijst van methodes merk je snel dat het niet meer haalbaar is om elke methode en functie in python vanbuiten te kennen. Het is daarom dat je skills om te (onder)zoeken heel belangrijk is. Vaak zal je een idee in je hoofd hebben wat je nodig hebt. Vaak zal dit ook al bestaan en dien je enkel te zoeken hoe de functie/methode noemt. Vervolgens dien je de syntax correct te kunnen interpreteren en implementeren. Bovendien zijn er vaak meerdere manieren om een probleem op te lossen. Sommige programmeurs zullen bepaalde methodes/functies prefereren en bijgevolg veel gebruiken en uiteindelijk vanbuiten kennen. Andere programmeurs zullen dan weer andere methodes en functies vaker gebruiken. Een uitdaging die je jezelf kunt geven is dus door oefeningen op verschillende manieren te proberen oplossen.

Alias

Als je een variabele die een list omvat toekent aan een andere variabele middels de assignment operator (=), denk je misschien dat je een kopie hebt gemaakt van de list. Maar dat is niet wat er gebeurt. Je maakt op deze manier een alias voor de list, dat wil zeggen, een nieuwe variabele die refereert aan precies dezelfde list. Je kunt de nieuwe variabele gebruiken als een list, maar iedere wijziging die je maakt in de list waaraan de variabele refereert, is ook te zien is in de list waaraan de originele variabele refereert, en vice versa. Het zijn niet twee verschillende lists.

fruitlist = ["appel", "banaan", "kers", "doerian"]
fruitlist2 = fruitlist
print( fruitlist )
print( fruitlist2 )
fruitlist2[2] = "mango"
print( fruitlist )
print( fruitlist2 )

Epiloog

Er zijn enorm veel mogelijkheden met lists. Bovendien zijn er veel technieken, theorie en andere zaken. Maar zoals je zult merken op je programmeer avontuur zal de beste ingesteldheid zijn, de befaamde worden van nike “Just do it”. Al doende leer je heel veel, je zal veel fouten maken maar stapje per stapje zal je meer begrijpen en vlot het uiteindelijk wel.

Kleine oefening

Maak een script dat invoer van de gebruiker vraagt tot dat er “stop” wordt gegeven. Als uitvoer wensen we een lijst met alle ingevoerde waarden.

Overzicht datatypes

Datatype Nederlands Beschrijving
Integer Geheel Getal Een geheel getal zonder decimalen, kan positief of negatief zijn. Voorbeeld: -5, 0, 42.
Float Kommagetal Een getal met decimalen, gebruikt voor waarden die een breuk kunnen zijn. Voorbeeld: 3.14, -0.001.
String Tekst Een reeks karakters, gebruikt om tekstuele informatie op te slaan. Voorbeeld: “Hallo”, ‘Python’.
Boolean NA Een logisch resultaat dat slechts twee waarden kan aannemen: True of False
Tuple NA Een onveranderlijke geordende reeks. Voorbeeld: (“banaan”, 2, 7)
List Lijst Een veranderlijke geordende reeks. Voorbeeld: [“banaan”, 2, 7]