În Python, operatorul = este utilizat pentru a atribui valori variabilelor.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
La fel ca în exemplul de mai sus, puteți atribui valori la mai multe variabile deodată, în loc de una la un moment dat, ceea ce este convenabil deoarece este necesară scrierea unei singure linii de cod.
Sunt descrise următoarele două cazuri.
- Atribuiți mai multe valori la mai multe variabile
- Atribuiți aceeași valoare la mai multe variabile
Atribuiți mai multe valori la mai multe variabile
Mai multe valori pot fi atribuite simultan mai multor variabile prin separarea variabilelor și a valorilor cu virgule.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Se acceptă trei sau mai multe variabile, fiecare de un tip diferit.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
În cazul în care există o variabilă în partea stângă, aceasta este atribuită ca un tupluplu.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
În cazul în care numărul de variabile din partea stângă nu corespunde cu numărul de valori din partea dreaptă, se va produce o eroare ValueError, dar restul poate fi atribuit ca o listă prin adăugarea unui asterisc la variabilă.
# a, b = 100, 200, 300
# ValueError: too many values to unpack (expected 2)
# a, b, c = 100, 200
# ValueError: not enough values to unpack (expected 3, got 2)
a, *b = 100, 200, 300
print(a)
print(type(a))
# 100
# <class 'int'>
print(b)
print(type(b))
# [200, 300]
# <class 'list'>
*a, b = 100, 200, 300
print(a)
print(type(a))
# [100, 200]
# <class 'list'>
print(b)
print(type(b))
# 300
# <class 'int'>
Pentru mai multe informații despre asteriscuri și despre modul în care se atribuie elemente ale unui tuple sau ale unei liste la mai multe variabile, consultați următorul articol.
- RELAȚIE:Despachetarea (extinderea și atribuirea la mai multe variabile) tuplurilor și listelor în Python
Atribuiți aceeași valoare la mai multe variabile
Aceeași valoare poate fi atribuită la mai multe variabile prin utilizarea consecutivă a lui =. Acest lucru este util pentru inițializarea mai multor variabile la aceeași valoare.
a = b = 100
print(a)
# 100
print(b)
# 100
Se acceptă mai mult de 3 bucăți.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
După atribuirea aceleiași valori, o altă valoare poate fi atribuită uneia dintre ele.
a = 200
print(a)
# 200
print(b)
# 100
Fiți atenți atunci când atribuiți obiecte mutabile, cum ar fi listele și tipurile de dicționare, mai degrabă decât obiecte imuabile (neschimbabile), cum ar fi numere întregi, numere cu virgulă mobilă și șiruri de caractere.
Utilizarea consecutivă a lui = înseamnă că toate variabilele indică același obiect, astfel încât, dacă modificați valoarea unui element sau adăugați un nou element, și celelalte se vor modifica.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
La fel ca mai jos.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Dacă doriți să le procesați separat, pur și simplu atribuiți-le fiecăruia.
after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)
3. Data model — Python 3.10.4 Documentation
a = [0, 1, 2]
b = [0, 1, 2]
print(a is b)
# False
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [0, 1, 2]
Există, de asemenea, metode pentru a genera copii superficiale și profunde cu copy() și deepcopy() în modulul copy.