Tuple i Python
En tuple är en samling av objekt i en bestämd ordning som inte går att ändra på efter att tuplen har deklarerats. En tuple är alltså oförändlig, så kallad immutable (mer om detta i senare avsnitt)
Vad är en tuple i Python?
En tuple påminner väldigt mycket om en array. Till skillnad från arrayen, är det inte möjligt att ändra värden i en skapad tuple. Det innebär att när du väl har skapat en tuple så kommer värderna i tupeln förbli densamma tills dess att tupeln tas bort.
Hur skapar man en tuple i Python?
Likt en array, skapar du en tuple med följande syntax:
tuplenamn = (värde1, värde2, värde3, osv)
Först ger man tupeln ett namn, sedan tilldelar man alla värden inom en parantes ( ), där varje värde är separerade med ett kommatecken “,”. Observera att en tuple skapas med rundparantes, till skillnad från arrayen som skapas med hakparanteser [ ].
Hur man skapar en tuple – Exempel
En tuple skapas enkelt i Python. Ta följande exempel:
djur_tuple = ("Katt", "Hund", "Fisk", "Ko")
print(djur_tuple)
print(type(djur_tuple))
print(djur_tuple[1])
print(type(djur_tuple[1]))
Utskriften blir:
('Katt', 'Hund', 'Fisk', 'Ko')
<class 'tuple'>
Hund
<class 'str'>
Observera att liksom arrayer, är första elementet indexerat med 0. Anropar man elementet på plats 1, returneras alltså Hund.
Tuples är oförändliga – inmutable
Du kan inte ändra värderna i en tuple. Följande kod orsakar alltså ett fel vilket gör att programmet krashar.
djur_tuple = ("Katt", "Hund", "Fisk", "Ko")
djur_tuple[0] = "Åsna"
TypeError: 'tuple' object does not support item assignment
Istället måste du ta bort tupeln helt. Det kan göras genom det reserverade ordet del() (delete). Du kan sedan skapa tupeln på nytt:
del(djur_tuple)
djur_tuple = ("Åsna", "Hund", "Fisk", "Ko")
Var därför nogrann med vilken datatyp du väljer för att lagra värden i. Vet du att det är hög sannolikhet att värdena kommer förändras, är arrayer att föredra.