🐍

Tupluri în Python

Programare Python Intermediar 1 min citire 0 cuvinte

Tupluri în Python

Ce este un Tuplu?

Tuplul este o colecție ordonată și imutabilă de elemente.

coordonate = (10, 20)
rgb = (255, 128, 0)
mixed = (1, "text", 3.14)
singleton = (42,)  # Virgula e necesară pentru un element!
gol = ()

Diferențe față de Liste

Caracteristică Listă Tuplu
Sintaxă [1, 2, 3] (1, 2, 3)
Mutabilitate Mutabilă Imutabilă
Hashable Nu Da (dacă conține doar imutabile)
Performanță Mai lentă Mai rapidă

Accesarea Elementelor

t = (10, 20, 30, 40, 50)

t[0]    # 10
t[-1]   # 50
t[1:3]  # (20, 30)

Imutabilitate

t = (1, 2, 3)
# t[0] = 10  # TypeError: tuplu este imutabil!

# Dar poți reatribui variabila
t = (10, 20, 30)  # OK - nou obiect

Excepție: Elemente mutabile în tuplu

t = ([1, 2], [3, 4])
t[0].append(3)  # OK!
print(t)        # ([1, 2, 3], [3, 4])
# Tuplul nu s-a schimbat, dar lista din interior da!

Operații cu Tupluri

# Concatenare
(1, 2) + (3, 4)  # (1, 2, 3, 4)

# Multiplicare
(1, 2) * 3       # (1, 2, 1, 2, 1, 2)

# Apartenență
2 in (1, 2, 3)   # True

# Funcții
len((1, 2, 3))   # 3
min((1, 2, 3))   # 1
max((1, 2, 3))   # 3
sum((1, 2, 3))   # 6

Unpacking (Despachetare)

# Despachetare simplă
coordonate = (10, 20)
x, y = coordonate
print(x, y)  # 10 20

# Despachetare cu rest
numere = (1, 2, 3, 4, 5)
primul, *rest, ultimul = numere
# primul=1, rest=[2,3,4], ultimul=5

# Swap elegant
a, b = 10, 20
a, b = b, a  # Acum a=20, b=10

Tupluri ca Chei de Dicționar

# Tuplurile HASHABLE pot fi chei
locatii = {
    (44.4, 26.1): "București",
    (46.8, 23.6): "Cluj"
}

locatii[(44.4, 26.1)]  # "București"

Când să Folosești Tupluri?

  1. Date care nu trebuie modificate: coordonate, configurări
  2. Chei de dicționar: când ai nevoie de chei compuse
  3. Returnare valori multiple din funcții:
def min_max(lista):
    return min(lista), max(lista)

minim, maxim = min_max([3, 1, 4, 1, 5])
  1. Performanță: tuplurile sunt mai rapide decât listele

De Reținut

Tuplurile sunt imutabile și hashable (dacă conțin doar elemente imutabile), ceea ce le face potrivite pentru chei de dicționar sau elemente de mulțime.

Întrebări de Verificare

  1. Cum creezi un tuplu cu un singur element?
  2. Ce se întâmplă când încerci t[0] = 10 pe un tuplu?
  3. Poate un tuplu conține o listă? Și poate fi cheie de dicționar?
  4. Ce este tuple unpacking?

📚 Articole Corelate