Di Python-ê de pir an heman nirxê ji gelek guhêrbaran re veqetandin

Dikan

Di Python de, operator = ji bo danasîna nirxan li guherbaran tê bikar anîn.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Mîna ku di mînaka li jor de, hûn dikarin li şûna yek di yek carê de nirxan bidin gelek guhêrbaran, ku ev yek hêsan e ji ber ku ji bo nivîsandinê tenê rêzek kodek hêsan hewce dike.

Du rewşên jêrîn têne şirove kirin.

  • Gelek nirxan ji gelek guherbaran re destnîşan bikin
  • Heman nirx ji gelek guherbaran re destnîşan bikin

Gelek nirxan ji gelek guherbaran re destnîşan bikin

Bi veqetandina guhêrbar û nirxan bi kommasê ve gelek nirx dikarin ji gelek guherbaran re hevdem werin veqetandin.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Sê an bêtir guhêrbar, her yek ji celebek cûda, têne pejirandin.

a, b, c = 0.1, 100, 'string'

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Ger li milê çepê yek guhêrbar hebe, ew wekî tîrêjê tê destnîşankirin.

a = 100, 200

print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>

Ger hejmara guhêrbarên li milê çepê bi hejmara nirxên li milê rastê re hevber neke, dê xeletiyek ValueError derkeve, lê yên mayî dikarin bi lêkirina stêrkek li guhêrbarê wekî lîsteyek were destnîşan kirin.

# 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'>

Ji bo bêtir agahdarî li ser stêrkan û meriv çawa hêmanên pirjimarek an navnîşê li gelek guhêrbaran veqetîne, li gotara jêrîn binêre.

Heman nirx ji gelek guherbaran re destnîşan bikin

Heman nirx bi karanîna = li pey hev dikare ji gelek guherbaran re were destnîşankirin. Ev ji bo destpêkirina gelek guherbaran bi heman nirxê bikêr e.

a = b = 100

print(a)
# 100

print(b)
# 100

Zêdetirî 3 perçe têne qebûl kirin.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Piştî destnîşankirina heman nirxê, nirxek din dikare ji yek ji wan re were veqetandin.

a = 200

print(a)
# 200

print(b)
# 100

Dema ku tiştên guhêrbar wek lîste û cureyên ferhengê veqetînin, li şûna tiştên neguhêrbar (neguhêrbar) ên wekî jimarên tevhejmar, jimareyên xala herikîn, û rêzan baldar bin.

Bikaranîna = li pey hev tê vê wateyê ku hemî guhêrbar nîşanê heman tiştan didin, ji ber vê yekê heke hûn nirxa hêmanek biguhezînin an hêmanek nû lê zêde bikin, dê ya din jî biguhere.

a = b = [0, 1, 2]

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Heman wekî jêrîn.

b = [0, 1, 2]
a = b

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Heke hûn dixwazin wan ji hev cuda bişopînin, bi tenê ji her yekê re veqetînin.

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]

Di modula kopîkirinê de bi copy() û deepcopy() re jî awayên çêkirina kopiyên hûr û kûr hene.

Copied title and URL