Priradenie viacerých alebo rovnakej hodnoty viacerým premenným v jazyku Python

obchodné

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.

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().

Copied title and URL