Python-tuples beheersen: aanmaken, benaderen en geavanceerde bewerkingen
Python-tuples
Ontdek de kracht van tuples in Python – onveranderlijke reeksen die snelheid, veiligheid en veelzijdigheid bieden voor heterogene data. Deze gids behandelt alles van basis syntax tot geavanceerde bewerkingen, zodat je begrijpt wanneer je tuples kiest boven lijsten.
Video: Python-lijsten en tuples
Een tuple gedraagt zich als een lijst maar is onveranderlijk zodra aangemaakt. In tegenstelling tot lijsten kun je de elementen niet wijzigen, wat tuples ideaal maakt voor vaste datasets.
Een tuple aanmaken
Tuples worden gedefinieerd door komma-gescheiden waarden tussen haakjes () te plaatsen. Hoewel haakjes optioneel zijn, verbeteren ze de leesbaarheid.
Tuples kunnen elk aantal items bevatten en datatypes mischen – integers, floats, strings, lijsten, andere tuples, etc.
# Verschillende soorten tuples
# Lege tuple
my_tuple = ()
print(my_tuple)
# Tuple met integers
my_tuple = (1, 2, 3)
print(my_tuple)
# Gemengde datatypes
my_tuple = (1, "Hallo", 3.4)
print(my_tuple)
# Geneste tuple
my_tuple = ("muis", [8, 4, 6], (1, 2, 3))
print(my_tuple)
Uitvoer
() (1, 2, 3) (1, 'Hallo', 3.4) ('muis', [8, 4, 6], (1, 2, 3))
Tuples kunnen ook zonder haakjes worden aangemaakt – een techniek die tuple packing heet.
my_tuple = 3, 4.6, "hond"
print(my_tuple)
# Tuple unpacking
a, b, c = my_tuple
print(a)
print(b)
print(c)
Uitvoer
(3, 4.6, 'hond') 3 4.6 hond
Als een tuple één element bevat, is een aftredende komma vereist om het te onderscheiden van een gewone waarde.
my_tuple = ("hallo")
print(type(my_tuple)) # <class 'str'>
# Enkele-element tuple
my_tuple = ("hallo",)
print(type(my_tuple)) # <class 'tuple'>
# Haakjes optioneel
my_tuple = "hallo",
print(type(my_tuple)) # <class 'tuple'>
Uitvoer
<class 'str'> <class 'tuple'> <class 'tuple'>
Tuple-elementen benaderen
Tuples ondersteunen verschillende methoden voor elementtoegang:
1. Indexeren
Gebruik de index-operator [] met zero-based indices. Out-of-range toegang geeft IndexError; niet-integer indices geven TypeError.
# Indexeren voorbeeld
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# Geneste indexering
n_tuple = ("muis", [8, 4, 6], (1, 2, 3))
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
Uitvoer
p t s 4
2. Negatief indexeren
Negatieve indices tellen vanaf het einde: -1 is het laatste element.
# Negatieve indexering
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
print(my_tuple[-1]) # 't'
print(my_tuple[-6]) # 'p'
Uitvoer
t p
3. Slicing
Gebruik start:stop syntaxis om sub-tuples te extraheren.
# Slicing voorbeeld
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4]) # ('r', 'o', 'g')
print(my_tuple[:-7]) # ('p', 'r')
print(my_tuple[7:]) # ('i', 'z')
print(my_tuple[:]) # volledige tuple
Uitvoer
('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

Een tuple wijzigen
Tuples zijn onveranderlijk. Directe toewijzing aan een element geeft TypeError:
# Poging tot wijziging
my_tuple = (4, 2, 3, [6, 5])
# my_tuple[1] = 9 # TypeError
Als een element zelf mutable is (bijv. een lijst), kan de interne staat wel veranderen:
my_tuple[3][0] = 9
print(my_tuple) # (4, 2, 3, [9, 5])
Tuples kunnen volledig heraangewezen worden naar een nieuwe waarde:
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)
Gebruik + voor concatenatie en * voor herhaling; beide retourneren een nieuwe tuple.
print((1, 2, 3) + (4, 5, 6)) # (1, 2, 3, 4, 5, 6)
print(("Herhaal",) * 3) # ('Herhaal', 'Herhaal', 'Herhaal')
Uitvoer
(1, 2, 3, 4, 5, 6) ('Herhaal', 'Herhaal', 'Herhaal')
Een tuple verwijderen
Individuele items kunnen niet worden verwijderd. De hele tuple kan met del worden verwijderd:
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# del my_tuple[3] # TypeError
del my_tuple
# print(my_tuple) # NameError
Uitvoer
Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined
Tuple-methoden
Tuples blootleggen slechts twee ingebouwde methoden: count() en index().
my_tuple = ('a', 'p', 'p', 'l', 'e')
print(my_tuple.count('p')) # 2
print(my_tuple.index('l')) # 3
Uitvoer
2 3
Aanvullende tuple-bewerkingen
1. Lidmaatschapstest
Controleer op bestaan met het in-trefwoord.
my_tuple = ('a', 'p', 'p', 'l', 'e')
print('a' in my_tuple)
print('b' in my_tuple)
print('g' not in my_tuple)
Uitvoer
True False True
2. Iteratie
Loop over tuples met for:
for naam in ('Jan', 'Kaat'):
print("Hallo", naam)
Uitvoer
Hallo Jan Hallo Kaat
3. Voordelen ten opzichte van lijsten
- Onveranderlijkheid biedt een prestatievoordeel bij iteratie.
- Tuples met alleen onveranderlijke elementen kunnen als dictionary-sleutels dienen.
- Schrijfbeveiligde data is gegarandeerd, wat per ongeluk wijzigingen voorkomt.
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python-iterators: hoe ze werken en hoe je je eigen maakt
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
- Python Overzicht: Hoog-Niveau, Leesbaar, Interactief & Object-Georiënteerd
- Python Numbers: Immutable Numerieke Datatypes Begrijpen
- Python Strings Beheersen: Aanmaken, Benaderen en Manipuleren