Katika Python, = operator hutumika kugawa maadili kwa vigezo.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Kama ilivyo kwenye mfano hapo juu, unaweza kugawa maadili kwa anuwai nyingi kwa wakati mmoja badala ya moja kwa wakati, ambayo ni rahisi kwa sababu inahitaji safu moja rahisi ya nambari kuandika.
Kesi mbili zifuatazo zimeelezewa.
- Agiza thamani nyingi kwa anuwai nyingi
- Agiza thamani sawa kwa anuwai nyingi
Agiza thamani nyingi kwa anuwai nyingi
Thamani nyingi zinaweza kupewa vigeu vingi kwa wakati mmoja kwa kutenganisha viambajengo na thamani kwa koma.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Vigezo vitatu au zaidi, kila moja ya aina tofauti, vinakubalika.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Ikiwa kuna kigezo kimoja upande wa kushoto, kimetolewa kama nakala.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Ikiwa idadi ya vigeu kwenye upande wa kushoto hailingani na idadi ya thamani zilizo upande wa kulia, hitilafu ya ValueError itatokea, lakini nyinginezo zinaweza kugawiwa kama orodha kwa kuongeza kinyota kwenye kigezo.
# 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'>
Kwa habari zaidi kuhusu nyota na jinsi ya kugawa vipengele vya tuple au orodha kwa vigezo vingi, angalia makala ifuatayo.
Agiza thamani sawa kwa anuwai nyingi
Thamani sawa inaweza kutolewa kwa anuwai nyingi kwa kutumia = mfululizo. Hii ni muhimu kwa kuanzisha anuwai nyingi kwa thamani sawa.
a = b = 100
print(a)
# 100
print(b)
# 100
Zaidi ya vipande 3 vinakubalika.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Baada ya kugawa thamani sawa, thamani nyingine inaweza kupewa mmoja wao.
a = 200
print(a)
# 200
print(b)
# 100
Kuwa mwangalifu unapoweka vitu vinavyoweza kugeuzwa kama vile orodha na aina za kamusi, badala ya vitu visivyoweza kubadilika (visivyobadilika) kama vile nambari kamili, nambari za nukta zinazoelea na mifuatano.
Kutumia = mfululizo kunamaanisha kuwa vijiti vyote vinaelekeza kwa kitu kimoja, kwa hivyo ukibadilisha thamani ya kitu kimoja au kuongeza kipengee kipya, kingine kitabadilika pia.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Sawa na hapa chini.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Ikiwa ungependa kuzichakata kando, kabidhi kwa kila moja.
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]
Pia kuna njia za kutoa nakala za kina kifupi na nakala () na nakala ya kina () kwenye moduli ya nakala.