Pagtatalaga ng maramihan o parehong halaga sa maraming variable sa Python

Negosyo

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.

Copied title and URL