web2 logo

Python Tuples

Een Tuple is a reeks van immutable Python objects. Tuples zijn reeksen, net als Lists. De verschillen tussen Tuples en Lists zijn dat Tuples niet veranderd kunnen worden in tegenstelling tot Lists, en Tuples staan tussen ronde haken terwijl lists tussen vierkante haken staan. In tuples is de volgorde van de elementen van belang
Tuples kunnen gebruikt worden om meerdere waarden terug te geven van een functie via return.
Lists kunnen slechts 1 datatype bevatten, terwijl Tuples een mix van verschillende datatypes mag hebben, zoals: Strings, Integers, Floats, Booleans en zelfs Lists.
Een Tuple maak je door een reeks komma gescheiden waarden op te geven, deze mogen tussen haakjes staan.
tup1 = ('druiven', 'aardbeien', 2008, 2016)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
Een lege Tuple wordt neergezet met 2 lege haken
tup1 = ()
Als je een Tuple wilt maken met slechts 1 waarde, dan moet er een komma bij
tup1 = (50,)
Net als met Strings kun je ook Tuples in stukken knippen en aan elkaar plakken, de indexen starten ook weer met nul ipv 1.
Tuples kunnen gebruikt worden om twee variabelen van waarde te laten wisselen:
(x, y) = (y, x)

Waarden van een Tuple opvragen

De waarden in een Tuple kunnen worden opgevraagd door een index te gebruiken tussen vierkante haken, als voorbeeld:

#!/usr/bin/env python3

tup1 = ('appels', 'peren', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

Wanneer de bovenstaande code wordt uitgevoerd, dan is dit het resultaat:

tup1[0]: appels
tup2[1:5]: [2, 3, 4, 5]

Let op het gebruik van de index: tup2[1:5] geeft van tup2 het 1+1de element TOT (dus niet tot en met) het 5+1de element. De index begint te tellen bij nul, dus je moet er steeds 1 bij op tellen om te zien om welk element het gaat.

Het aanpassen van Tuples

Tuples zijn immutable en dat houdt in dat je de waarden van Tuple elementen niet kunt aanpassen. Je kunt echter wel gedeelten van een Tuple nemen om daar een nieuwe Tuple mee te vormen:

#!/usr/bin/env python3

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')

# Het onderstaande mag niet met een Tuple:
# tup1[0] = 100;

# Zo maak je een neiuwe Tuple uit 2 bestaande Tuples
tup3 = tup1 + tup2
print (tup3)

Dit wordt dan het resultaat:

(12, 34.56, 'abc', 'xyz')

Tuple Elementen verwijderen

Individuele Tuple elemeneten verwijderen mag niet. Je kunt natuurlijk wel een nieuwe Tuple maken waar de ongewenste elementen niet meer in voor komen.

Een complete Tuple verwijderen gaat wel, dat kan met del, als bijvoorbeeld:

#!/usr/bin/env python3

tup = ('appels', 'peren', 1997, 2000)

print (tup)
del tup;
print ("Na del tup : ")
print (tup)

Dit geeft het volgende resultaat. Er wordt een Error veroorzaakt omdat de Tuple niet meer bestaat na del tup

('appels', 'peren', 1997, 2000)
Na del tup :
Traceback (most recent call last):
File "./test.py", line 9, in <module>
print (tup)
NameError: name 'tup' is not defined

Basis Tuples bewerkingen

Tuples reageren op de + en * operatoren zoals Strings; dus ook combineren en repeteren, echter het resultaat is dan geen String, maar een Tuple.

Op Tuples kunnen dezelfde operatoren gebruikt worden als bij Strings

Python ExpressieResultatenBeschrijvingen
len((1, 2, 3))3Lengte
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)Samenvoegen
('Hoi!',) * 3('Hoi!', 'Hoi!', 'Hoi!')Repeteren
3 in (1, 2, 3)TrueLidmaatschap
for x in (1, 2, 3): print x,1 2 3Opsomming

Indexen, Knippen en Matrixen

Tuples zijn reeksen, daarom werkt het indexen en knippen bij Tuples net zoals bij Strings

L = ('foei', 'Foei', 'FOEI!')

Python ExpressieResultatenBeschrijvingen
L[2]'FOEI!'Het tellen begint bij nul
L[-2]'Foei'Negatief: we tellen nu vanaf rechts
L[1:]['Foei', 'FOEI!']Knippen pakt delen

Zonder haken

Elke set van meerdere objecten die door komma's gescheiden zijn en zonder haken worden genoteerd worden standaard beschouwd als Tuples.

#!/usr/bin/env python3

print ('abc', -4.24e93, 18+6.6j, 'xyz')
x, y = 1, 2
print ("Waarde van x , y : ", x,y)

Het bovenstaande geeft als resultaat:

abc -4.24e+93 (18+6.6j) xyz
Waarde van x , y : 1 2

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ python ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.