Hoofdstuk 3
Gegevens bewerken en combineren
Maak kennis met tuples
Hoofdstuk 2 richtte zich op functies die duidelijk te gebruiken zijn. Dit hoofdstuk volgt de gegevens die door die functies bewegen: hoe je samenhangende waarden uit elkaar haalt, verzamelingen combineert, records rangschikt en samenvattingen berekent.
Je kent lijsten en dictionaries al. Python heeft nog een verzameling voor een kleine groep waarden die bij elkaar horen: een tuple.
Schrijf een tuple
Meestal schrijf je de items tussen ronde haken en scheid je ze met komma’s:
Python meldt het type als tuple. Deze tuple bevat drie items: een cursistnaam, een score en een totaal. Tuple-items kunnen verschillende typen hebben, dus strings en gehele getallen kunnen samen voorkomen.
De komma’s maken de tuple
De ronde haken maken een tuple makkelijk herkenbaar, maar de komma’s maken de tuple daadwerkelijk. Op veel plekken zijn de ronde haken optioneel:
Python behandelt point als de tuple (10, 2).
Dezelfde regel geldt wanneer een functie waarden gescheiden door komma’s teruggeeft:
def position():
x = 10
y = 2
return x, y
return x, y geeft één waarde terug: de tuple (10, 2).
Ronde haken blijven nuttig, dus deze cursus gebruikt ze meestal wanneer we direct een tuple maken. Ze maken het begin en einde van de groep duidelijk.
De komma wordt vooral belangrijk voor een tuple met één item:
one_number = (10,)
not_a_tuple = (10)
one_number is een tuple dankzij de komma. not_a_tuple is alleen het gehele getal 10 tussen groeperende ronde haken.
Net als een lijst bewaart een tuple de items in volgorde. Index 0 verwijst naar het eerste item:
result = ("Mina", 8, 10)
print(result[0])
print(result[1])
print(len(result))
Dit drukt de cursistnaam, de score en het aantal items af.
Gebruik een tuple voor een vaste groep
Een lijst is handig wanneer je items kunt toevoegen, verwijderen of vervangen. Een tuple is onveranderbaar: de items kunnen niet worden vervangen nadat de tuple is gemaakt.
Deze toewijzing is bijvoorbeeld niet toegestaan:
result[1] = 9
Python veroorzaakt een TypeError, omdat result een tuple is. Maak een nieuwe tuple om een ander resultaat weer te geven:
updated_result = ("Mina", 9, 10)
Die vaste vorm maakt een tuple nuttig voor een kleine groep waarvan de posities een afgesproken betekenis hebben:
coordinates = (4, 7)
color = (120, 80, 200)
result = ("Mina", 8, 10)
Vervang niet elke lijst of dictionary door een tuple. Gebruik een lijst voor een verzameling die groeit of verandert. Gebruik een dictionary wanneer labels zoals "learner" en "score" zichtbaar moeten blijven. Een tuple is vooral nuttig wanneer de groep klein, geordend en vast is.
Een functie kan één tuple teruggeven
Een functie geeft altijd één waarde tegelijk terug. Die waarde kan zelf een tuple met meerdere samenhangende items zijn. Hier maken ronde haken de teruggegeven groep makkelijk zichtbaar:
def result_values(attempt):
return (
attempt["learner"],
attempt["score"],
attempt["total"],
)
Eén variabele kan de teruggegeven tuple ontvangen:
attempt = {"learner": "Mina", "score": 8, "total": 10}
result = result_values(attempt)
result verwijst nu naar één tuple met drie items.
Zoals het eerdere voorbeeld met position liet zien, kan de functie de ronde haken weglaten en direct waarden gescheiden door komma’s teruggeven. Het resultaat blijft één tuple.
Welke waarde is een tuple met een cursist, score en totaal?
Verken een tuple in de REPL
Gebruik de REPL naast de les om result = ("Mina", 8, 10) te maken. Voer daarna één voor één result, type(result), len(result) en elk van de drie items via hun index in.
De volgende les behoudt dezelfde resultaattuple, maar geeft de posities beschrijvende namen in plaats van herhaaldelijk result[0], result[1] en result[2] te gebruiken.