Nyckelord: Tuple, Listor

En tuple i Python ä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änderlig, så kallad immutable. Mer om detta i avsnittet Mutable och Immutable datatyper i Python.
En tuple med ett enda element behöver ett avslutande kommatecken: (42,). En tuple kan innehålla en föränderlig lista; listan kan då ändras även om tupelns referenser ligger fast.
Vad är en tuple i Python?
En tuple liknar en lista, men du kan inte byta ut, lägga till eller ta bort tupelns elementreferenser. Om ett element är ett föränderligt objekt, till exempel en lista, kan själva det objektet däremot ändras.
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 parentes ( ), där varje värde är separerade med ett kommatecken ",". Observera att en tuple skapas med rundparentes, till skillnad från listor som man skapar med hakparenteser [ ].
Exempel: Hur man skapar en tuple
Det är enkelt att skapa en tuple 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 listor, är första elementet indexerat med 0. Anropar man elementet på plats 1, returneras alltså Hund.
Tuples är oföränderliga - immutable
I programmeringssammanhang betyder "oföränderlig" (immutable) att ett objekts tillstånd eller data inte kan ändras efter att det har skapats. För tuples i Python innebär detta att när en tuple väl har skapats, kan dess element inte modifieras. Det betyder till exempel att du inte kan ändra, lägga till eller ta bort element från en tuple.
Tupelns fasta struktur är användbar när elementens referenser ska ligga kvar. Det gör inte automatiskt hela innehållet oföränderligt: en lista inuti en tuple kan fortfarande ändras. En tuple kan användas som dictionary-nyckel bara om alla dess element är hashbara.
Exempel: Tuple är immutable
Följande kod orsakar alltså ett fel vilket gör att programmet kraschar.
djur_tuple = ("Katt", "Hund", "Fisk", "Ko")
djur_tuple[0] = "Åsna"
TypeError: 'tuple' object does not support item assignment
Du kan i stället skapa en ny tuple och låta samma variabelnamn referera till den. Du behöver inte först använda del, och den ursprungliga tupeln ändras inte.
djur_tuple = ("Åsna", "Hund", "Fisk", "Ko")
Var därför noggrann 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 under programmets gång, är listor att föredra.

Vanliga frågor och svar: Tuples i Python
En tuple är en samling av Python-objekt som är ordnade och oföränderliga.
En tuple skapas genom att placera objekten inom parenteser (), separerade med kommatecken, t.ex. min_tuple = (1, 2, 3).
Nej, tuples är oföränderliga, vilket betyder att du inte kan ändra dess element efter att de har skapats.
Tuples används ofta för att lagra data som inte ska ändras, returnera flera värden från en funktion, eller som nycklar i dictionaries.
Element i en tuple tillgås via index, precis som listor, t.ex. min_tuple[0] för att få första elementet.
"Immutable" betyder oföränderlig och refererar till objekt vars tillstånd inte kan ändras efter att de har skapats. I Python är tuples ett exempel på en oföränderlig datatyp.
"Mutable" betyder föränderlig och refererar till objekt som kan ändras efter att de har skapats. I Python är listor och dictionaries exempel på föränderliga datatyper.