MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Tupluri

Un tuplu (tuple) reprezintă o secvență de elemente care, în mare parte, seamănă cu o listă, cu excepția faptului că tuplul este un tip de date imuabil (immutable). Din acest motiv, nu putem adăuga sau elimina elemente într-un tuplu și nu îl putem modifica.

Pentru a crea un tuplu, se folosesc paranteze rotunde, în care sunt plasate valorile acestuia, separate prin virgule:

tom = ("Tom", 23)
print(tom)     # ("Tom", 23)

De asemenea, pentru a defini un tuplu, putem pur și simplu să enumerăm valorile separate prin virgulă, fără a folosi paranteze:

tom = "Tom", 23
print(tom)     # ("Tom", 23)

Dacă tuplul conține un singur element, după acest element trebuie pusă o virgulă:

tom = ("Tom",)

Pentru a crea un tuplu dintr-un alt set de elemente, de exemplu, dintr-o listă, putem transmite lista în funcția tuple(), care va returna tuplul:

data = ["Tom", 37, "Google"]
tom = tuple(data)
print(tom)      # ("Tom", 37, "Google")

Cu ajutorul funcției încorporate len() putem obține lungimea unui tuplu:

tom = ("Tom", 37, "Google")
print(len(tom))     # 3

Accesarea elementelor unui tuplu

Accesarea elementelor dintr-un tuplu se face la fel ca în cazul unei liste, folosind indexul. Indexarea începe de la zero pentru elementele de la începutul listei și de la -1 pentru elementele de la sfârșitul listei:

tom = ("Tom", 37, "Google", "software developer")
print(tom[0])       # Tom
print(tom[1])       # 37
print(tom[-1])      # software developer

Însă, deoarece tuplul este un tip imuabil (immutable), nu putem modifica elementele acestuia. Astfel, următorul cod nu va funcționa:

tom[1] = "Tim"

Dacă este necesar, putem descompune un tuplu în variabile individuale:

name, age, company, position = ("Tom", 37, "Google", "software developer")
print(name)         # Tom
print(age)          # 37
print(position)     # software developer
print(company)      # Google

Obținerea subtuplurilor

Ca și în cazul listelor, putem obține o parte a unui tuplu sub forma unui alt tuplu:

tom = ("Tom", 37, "Google", "software developer")

# obținem subtuplul de la elementul 1 la 3 (exclusiv)
print(tom[1:3])     # (37, "Google")

# obținem subtuplul de la elementul 0 la 3 (exclusiv)
print(tom[:3])     # ("Tom", 37, "Google")

# obținem subtuplul de la elementul 1 până la ultimul element
print(tom[1:])     # (37, "Google", "software developer")

Tuplul ca parametru și rezultat al funcțiilor

Este deosebit de convenabil să folosim tupluri atunci când trebuie să returnăm mai multe valori dintr-o funcție. Când o funcție returnează mai multe valori, de fapt, returnează un tuplu:

def get_user():
   name = "Tom"
   age = 22
   company = "Google"
   return name, age, company

user = get_user()
print(user)     # ("Tom", 37, "Google")

Când transmitem un tuplu unei funcții, cu ajutorul operatorului *, îl putem descompune în valori individuale care sunt transmise ca parametri funcției:

def print_person(name, age, company):
   print(f"Name: {name}  Age: {age}  Company: {company}")

tom = ("Tom", 22)
print_person(*tom, "Microsoft")     # Name: Tom  Age: 22  Company: Microsoft

bob = ("Bob", 41, "Apple")
print_person(*bob)      # Name: Bob  Age: 41  Company: Apple

Parcurgerea tuplurilor

Pentru a parcurge un tuplu, se pot folosi ciclurile standard for și while. Folosind ciclul for:

tom = ("Tom", 22, "Google")
for item in tom:
   print(item)

Folosind ciclul while:

tom = ("Tom", 22, "Google")

i = 0
while i < len(tom):
   print(tom[i])
   i += 1

Verificarea existenței unei valori

Ca și în cazul listei, folosind expresia element in tuplu, putem verifica existența unui element într-un tuplu:

user = ("Tom", 22, "Google")
name = "Tom"
if name in user:
   print("Utilizatorul se numește Tom")
else:
   print("Utilizatorul are un alt nume")
← Lecția anterioară Lecția următoare →