Liste în Python
Ce este o Listă?
Lista este o colecție ordonată și mutabilă de elemente, care poate conține duplicate.
numere = [1, 2, 3, 4, 5]
mixta = [1, "text", 3.14, True, [1, 2]]
goala = []
Accesarea Elementelor
Indexare
lista = [10, 20, 30, 40, 50]
lista[0] # 10 (primul element)
lista[-1] # 50 (ultimul element)
lista[-2] # 40 (penultimul)
Slicing (Feliere)
lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
lista[2:5] # [2, 3, 4]
lista[:3] # [0, 1, 2]
lista[7:] # [7, 8, 9]
lista[::2] # [0, 2, 4, 6, 8] (din 2 în 2)
lista[1::2] # [1, 3, 5, 7, 9]
lista[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (inversată)
Modificarea Listelor
Adăugare elemente
lista = [1, 2, 3]
lista.append(4) # [1, 2, 3, 4]
lista.insert(0, 0) # [0, 1, 2, 3, 4]
lista.extend([5, 6]) # [0, 1, 2, 3, 4, 5, 6]
Eliminare elemente
lista = [1, 2, 3, 2, 4]
lista.remove(2) # [1, 3, 2, 4] (prima apariție)
elem = lista.pop() # elem=4, lista=[1, 3, 2]
elem = lista.pop(0) # elem=1, lista=[3, 2]
del lista[0] # lista=[2]
lista.clear() # lista=[]
Modificare în loc
lista = [1, 2, 3]
lista[0] = 10 # [10, 2, 3]
lista[1:3] = [20, 30] # [10, 20, 30]
Metode Utile
lista = [3, 1, 4, 1, 5, 9, 2, 6]
len(lista) # 8
lista.count(1) # 2 (de câte ori apare 1)
lista.index(4) # 2 (indexul lui 4)
lista.sort() # Sortează în loc
lista.reverse() # Inversează în loc
lista.copy() # Copie superficială
Liste și Referințe
Problema aliasing-ului
a = [1, 2, 3]
b = a # b referă același obiect!
b.append(4)
print(a) # [1, 2, 3, 4] - și a s-a modificat!
Soluții pentru copiere
a = [1, 2, 3]
# Copie superficială
b = a.copy()
b = a[:]
b = list(a)
b.append(4)
print(a) # [1, 2, 3] - a rămâne neschimbat
Operații
# Concatenare
[1, 2] + [3, 4] # [1, 2, 3, 4]
# Multiplicare
[1, 2] * 3 # [1, 2, 1, 2, 1, 2]
# Apartenență
3 in [1, 2, 3] # True
Liste Imbricate
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
matrice[0] # [1, 2, 3]
matrice[0][1] # 2
matrice[1][2] # 6
De Reținut
Listele sunt mutabile și când atribui o listă altei variabile, ambele referă același obiect. Folosește
.copy()sau slicing[:]pentru o copie independentă.
Întrebări de Verificare
- Ce returnează
[1,2,3][1::]? - Care este diferența dintre
append()șiextend()? - Ce se întâmplă când faci
b = aundeaeste o listă? - Cum elimini și obții ultimul element dintr-o listă?