Er zijn verschillende manieren om een tuple aan te maken.
Omdat we reeds kennis gemaakt hebben met lijsten, zal het logisch zijn om gewoon waarden tussen ronde haakjes, gescheiden door een komma toe te wijzen aan een variabele.
mijn_tuple = (1, 2, 'a', 3.14, 'Python')
Je merkt hier dat je, net zoals bij lijsten, een combinatie kan hebben van verschillende soorten data: gehele getallen (integer), reële getallen (float) en tekst (strings).
Let wel op. Een een tuple aangemaakt, kan je deze niet wijzigen. Je kan wel een nieuwe tuple aanmaken met dezelfde naam.
mijn_tuple = (1, 2, 'a', 3.14, 'Python')
print(mijn_tuple)
mijn_tuple = (3,4,5)
print(mijn_tuple)
Uitvoer:
De eerste tuple wordt aangemaakt en gedrukt
Een nieuwe tuple met dezelfde naam wordt aangemaakt. Dit is geen wijziging van de bestaande tuple, maar volledig nieuwe met dezelfde naam
Tuple packing verwijst naar de manier waarop je meerdere waarden kunt groeperen in een enkele tuple zonder expliciet haakjes te gebruiken. Het is een handige syntactische eigenschap van Python waarbij je gewoon een reeks waarden scheidt door komma's, en Python zal automatisch deze waarden verpakken in een tuple.
Hier is een voorbeeld:
mijn_tuple = 1, 2, 'a', 3.14, 'Python'
Tuple packing is eenvoudig en maakt het mogelijk om snel en beknopt tuples te maken zonder expliciete haakjes te gebruiken.
Het gebruik van haakjes bij het maken van tuples is nog steeds een gangbare praktijk en wordt vaak gebruikt om de leesbaarheid van de code te verbeteren. Echter, bij tuple packing worden de haakjes weggelaten en worden de waarden simpelweg gescheiden door komma's.
Tuple packing wordt vaak gezien in contexten zoals het retourneren van meerdere waarden vanuit een functie.
def coördinaten():
x = 10
y = 20
z = 30
return x, y, z
resultaat = coördinaten()
print(resultaat) # Geeft (10, 20, 30) terug
Uitvoer:
De tuple-constructor in Python is de tuple()-functie waarmee je een tuple kunt maken door een ander iterable object (zoals een lijst of een string) om te zetten in een tuple. De constructor accepteert één argument, het iterable object, en retourneert een nieuwe tuple met dezelfde elementen als het iterable object.
Hier is een eenvoudig voorbeeld van het gebruik van de tuple-constructor:
# Een lijst omzetten in een tuple
mijn_lijst = [1, 2, 3, 4]
mijn_tuple = tuple(mijn_lijst)
print(mijn_tuple) # Geeft (1, 2, 3, 4) terug
# Een string omzetten in een tuple
mijn_string = "hello"
mijn_tuple = tuple(mijn_string)
print(mijn_tuple) # Geeft ('h', 'e', 'l', 'l', 'o') terug
Uitvoer:
In dit voorbeeld wordt de tuple()-constructor gebruikt om zowel een lijst als een string om te zetten in tuples. Het resultaat is dat elk element van het oorspronkelijke iterable object een element wordt van de nieuwe tuple.
Het is belangrijk op te merken dat als het argument dat aan de tuple()-constructor wordt doorgegeven al een tuple is, de constructor eenvoudigweg een referentie naar dat bestaande tuple-object retourneert in plaats van een nieuwe tuple te maken.
Bijvoorbeeld:
# Een lijst omzetten in een tuple
mijn_lijst = [1, 2, 3, 4]
mijn_tuple = tuple(mijn_lijst)
print(mijn_tuple) # Geeft (1, 2, 3, 4) terug
# Een string omzetten in een tuple
mijn_string = "hello"
mijn_tuple = tuple(mijn_string)
print(mijn_tuple) # Geeft ('h', 'e', 'l', 'l', 'o') terug
Uitvoer:
Over het algemeen is de tuple-constructor handig wanneer je een bestaand iterable object wilt omzetten in een tuple of wanneer je zeker wilt zijn dat je met een tuple werkt.
Dit is gelijklopend met lijsten en strings.
Met de index kunnen we individuele elementen benaderen. We hebben reeds besproken dat het eerste element index 0 heeft, en het volgende telkens een index die eentje hoger is.
Gebruiker we een index die niet in de lijst voorkomt, dan krijgen we een foutmelding.
Om dit te vermijden kan je controleren hoe lang de lijst is. Dit kan met de len( )-functie.
De len( )-functie geeft als retour-waarde het aantal elementen in een collectie. Dat wilt zeggen dat deze functie niet enkel kan gebruikt worden voor lijsten, maar ook voor strings, en andere colectie types.
Wanneer je met de index individuele elementen kan benaderen kan je deze ook individueel gaan veranderen.
In onderstaand voorbeeld gaan we de postcode, het derde element in de lijst, het element met index 2 veranderen
Je kan ook gebruik maken van een expressie om de waarde van een element te veranderen:
Je kan een element gaan zoeken op basis van zijn waarde.
Dit kan met <lijst>.index(<waarde>)
Als er een element gevonden is dat overeenkomt met <waarde> dan krijg je als retour de index van het eerste element dat ermee overeenkomt.
Als er geen element gevonden wordt dat overeenkomt met <waarde>, dan krijg je een foutmelding.
Je kan dit vermijden door eerst te controleren of er een element aanwezig is dat overeenkomt met <waarde>. Dit kan met de instructie: in
De algemene syntax is
<waarde> in <lijst>
De return waarde is True als <waarde> gevonden wordt, en False in het andere geval.
Voorbeeld:
fibo = [0,1,1,2,3,5,8,13,21]
print('lijst:',fibo)
ingave = int(input("Geef getal in: "))
if ingave in fibo:
plaats = fibo.index(ingave)
print(f'Het getal staat op plaats {plaats+1} en heeft index {plaats}.')
else:
print('Het getal komt niet voor in de lijst')