V jazyku Python sa operátor = používa na priradenie hodnôt premenným.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Podobne ako vo vyššie uvedenom príklade môžete priradiť hodnoty viacerým premenným naraz namiesto jednej po druhej, čo je výhodné, pretože to vyžaduje len jeden jednoduchý riadok kódu.
Nasledujúce dva prípady sú opísané.
- Priradenie viacerých hodnôt viacerým premenným
- Priradenie rovnakej hodnoty viacerým premenným
Priradenie viacerých hodnôt viacerým premenným
Viaceré hodnoty možno priradiť viacerým premenným súčasne tak, že sa premenné a hodnoty oddelia čiarkami.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Prípustné sú tri alebo viac premenných, každá iného typu.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Ak je na ľavej strane jedna premenná, je priradená ako tuple.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Ak sa počet premenných na ľavej strane nezhoduje s počtom hodnôt na pravej strane, vznikne chyba ValueError, ale zvyšok možno priradiť ako zoznam pridaním hviezdičky k premennej.
# 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'>
Viac informácií o hviezdičkách a o tom, ako priradiť prvky tuple alebo zoznamu viacerým premenným, nájdete v nasledujúcom článku.
- SÚVISIACE:Rozbaľovanie (rozbalenie a priradenie do viacerých premenných) kôpok a zoznamov v jazyku Python
Priradenie rovnakej hodnoty viacerým premenným
Tú istú hodnotu možno priradiť viacerým premenným pomocou = za sebou. To je užitočné pri inicializácii viacerých premenných na rovnakú hodnotu.
a = b = 100
print(a)
# 100
print(b)
# 100
Viac ako 3 kusy sú prijateľné.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Po priradení rovnakej hodnoty je možné jednému z nich priradiť inú hodnotu.
a = 200
print(a)
# 200
print(b)
# 100
Buďte opatrní pri priraďovaní premenlivých objektov, ako sú zoznamy a slovníkové typy, a nie nemenných (nemenných) objektov, ako sú celé čísla, čísla s pohyblivou rádovou čiarkou a reťazce.
Použitie = za sebou znamená, že všetky premenné ukazujú na rovnaký objekt, takže ak zmeníte hodnotu jedného prvku alebo pridáte nový prvok, zmenia sa aj ostatné.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
To isté ako nižšie.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Ak ich chcete spracovať samostatne, jednoducho ich priraďte ku každému z nich.
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]
V module copy sú k dispozícii aj metódy na vytváranie plytkých a hĺbkových kópií pomocou funkcií copy() a deepcopy().