Tuples
Cunoaștem deja listele. O listă poate crește, se poate micșora și se poate schimba: putem adăuga (append), elimina (remove) și modifica elemente oricând vrem. Dar uneori vrem o colecție care nu se poate schimba. Aceasta este un tuple
coordonate = (10, 20)
print(coordonate)
Rezultat (10, 20)
Un tuple arată ca o listă, dar cu paranteze rotunde () în loc de paranteze pătrate []. Marea diferență? Nu îl putem modifica după creare
coordonate = (10, 20)
coordonate[0] = 99
Rulează-l. Python va țipa la noi cu o TypeError: 'tuple' object does not support item assignment. Cu alte cuvinte: „nu mă poți schimba"
De ce am vrea vreodată ceva ce nu putem schimba? Ei bine, uneori ăsta e tot rostul. Gândește-te la o dată de naștere. Tommy Vercetti s-a născut într-o anumită zi. Acea dată nu ar trebui să se schimbe niciodată. Dacă scriem din greșeală cod care încearcă să o modifice, vrem ca Python să ne oprească
zi_de_nastere = (1951, 7, 15)
print(zi_de_nastere)
Alt exemplu: coordonate GPS. Vice City se află într-o locație fixă. Nu se mișcă
vice_city = (25.7617, -80.1918)
print(vice_city)
Putem citi elemente dintr-un tuple, exact ca dintr-o listă, folosind un index
jucator = ("Tommy Vercetti", 100, "Vice City")
print(jucator[0])
print(jucator[1])
print(jucator[2])
Ieșire
Tommy Vercetti
100
Vice City
Și len() funcționează
jucator = ("Tommy Vercetti", 100, "Vice City")
print(len(jucator))
Rezultat 3
Unul dintre cele mai mișto lucruri legate de tuple-uri este despachetarea (unpacking). În loc să folosim indecși, putem apuca toate valorile dintr-o dată
jucator = ("Tommy Vercetti", 100, "Vice City")
nume, viata, oras = jucator
print(nume)
print(viata)
print(oras)
Ieșire
Tommy Vercetti
100
Vice City
Am creat trei variabile într-o singură linie. Python a luat primul element și l-a pus în nume, al doilea în viata, al treilea în oras. Numărul de variabile din stânga trebuie să corespundă cu numărul de elemente din tuple
a, b = (10, 20)
print(a)
print(b)
Ieșire
10
20
Aceasta este aceeași despachetare pe care am văzut-o la .items() când parcurgeam dicționare. Acum știi de unde vine
Putem și parcurge (loop) un tuple, exact ca o listă
eroi = ("Shrek", "Fiona", "Donkey")
for erou in eroi:
print(erou)
Ieșire
Shrek
Fiona
Donkey
Misiune: Harta Stelară
Calculatorul de navigație al stației stochează fiecare sistem stelar ca un tuple de (nume, distanta, planete), toate într-o listă numită sisteme
- Parcurge lista și despachetează (unpack) fiecare tuple în trei variabile:
nume,distanta,planete - Afișează fiecare sistem ca
nume: distanta al, planete planete, de exempluSol: 0 al, 8 planete(al= ani-lumină) - După buclă, afișează
Total planete:apoi suma tuturor planetelor
Ieșire
Sol: 0 al, 8 planete
Alpha: 4 al, 3 planete
Vega: 25 al, 5 planete
Total planete: 16