Sa Python, ang = operator ay ginagamit upang magtalaga ng mga halaga sa mga variable.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Tulad ng halimbawa sa itaas, maaari kang magtalaga ng mga halaga sa maraming variable nang sabay-sabay sa halip na isa-isa, na maginhawa dahil nangangailangan lamang ito ng isang simpleng linya ng code upang magsulat.
Ang sumusunod na dalawang kaso ay inilarawan.
- Magtalaga ng maraming value sa maraming variable
- Magtalaga ng parehong halaga sa maraming variable
Magtalaga ng maraming value sa maraming variable
Maaaring italaga ang maraming value sa maraming variable nang sabay-sabay sa pamamagitan ng paghihiwalay ng mga variable at value gamit ang mga kuwit.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Tatlo o higit pang mga variable, bawat isa ay may iba’t ibang uri, ay katanggap-tanggap.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Kung mayroong isang variable sa kaliwang bahagi, ito ay itinalaga bilang isang tuple.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Kung ang bilang ng mga variable sa kaliwang bahagi ay hindi tumutugma sa bilang ng mga halaga sa kanang bahagi, isang error sa ValueError ang magreresulta, ngunit ang iba ay maaaring italaga bilang isang listahan sa pamamagitan ng pagdaragdag ng asterisk sa variable.
# 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'>
Para sa higit pang impormasyon tungkol sa mga asterisk at kung paano magtalaga ng mga elemento ng isang tuple o listahan sa maraming variable, tingnan ang sumusunod na artikulo.
Magtalaga ng parehong halaga sa maraming variable
Ang parehong halaga ay maaaring italaga sa maraming mga variable sa pamamagitan ng paggamit ng = magkakasunod. Ito ay kapaki-pakinabang para sa pagsisimula ng maramihang mga variable sa parehong halaga.
a = b = 100
print(a)
# 100
print(b)
# 100
Higit sa 3 piraso ay katanggap-tanggap.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Pagkatapos magtalaga ng parehong halaga, maaaring magtalaga ng isa pang halaga sa isa sa kanila.
a = 200
print(a)
# 200
print(b)
# 100
Mag-ingat kapag nagtatalaga ng mga nababagong bagay gaya ng mga listahan at uri ng diksyunaryo, sa halip na mga bagay na hindi nababago (hindi nababago) gaya ng mga integer, mga numero ng floating point, at mga string.
Ang paggamit ng = sunud-sunod ay nangangahulugan na ang lahat ng mga variable ay tumuturo sa parehong bagay, kaya kung babaguhin mo ang halaga ng isang elemento o magdagdag ng bagong elemento, magbabago rin ang isa pa.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Pareho sa ibaba.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Kung gusto mong iproseso ang mga ito nang hiwalay, italaga lang sa bawat isa.
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]
Mayroon ding mga paraan upang makabuo ng mababaw at malalim na mga kopya na may copy() at deepcopy() sa copy module.