Kuongeza vitu kwenye kamusi na kujiunga na kamusi katika Python

Biashara

Sehemu hii inaelezea jinsi ya kuongeza vitu vipya kwenye kamusi (dict aina ya kitu) au kusasisha thamani ya kitu kilichopo kwenye Python. Inawezekana pia kutunga (jiunge, unganisha) kamusi nyingi.

  • Ongeza na usasishe vitu kwenye kamusi kwa kubainisha funguo.
  • Concatenation (kuunganisha) ya kamusi nyingi: sasisha (), | operator, | = mwendeshaji
  • Ongeza au sasisha vitu kadhaa: sasisha (), | = mwendeshaji

Ongeza na usasishe vitu kwenye kamusi kwa kubainisha funguo.

Unaweza kuongeza / kusasisha vitu vya kamusi kwa njia ifuatayo.

Kitu cha Kamusi [ufunguo] = thamani

Wakati kitufe kisichokuwepo kimeainishwa, kipengee kipya kinaongezwa, na wakati kitufe kilichopo kimeainishwa, thamani iliyopo inasasishwa (imeandikwa tena).

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

Ikiwa hautaki kusasisha thamani ya ufunguo uliopo, tumia njia ya setdefault ().

Concatenate (unganisha) kamusi nyingi: sasisha (), | operator, | = mwendeshaji

update()

Ikiwa kitu kingine cha kamusi kimeainishwa kama hoja ya sasisho la njia ya kitu cha kamusi (), vitu vyake vyote vitaongezwa.

Ikiwa kitufe kinaingiliana na kitufe kilichopo, kitaandikwa tena na thamani ya kamusi iliyoainishwa kwenye hoja.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

Ni kosa kutaja kamusi nyingi katika hoja ya sasisho ().

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2

Kama ilivyoelezwa baadaye, sasisho () linaweza kuongeza vitu vipya kama hoja za neno kuu (key = value), kwa hivyo ongeza tu ** kwenye kamusi na upanue kila kitu kama hoja ya neno kuu na upitishe.

d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

Kama ilivyo katika mifano ya hapo awali, kutumia sasisho () itasasisha kitu cha asili cha kamusi.

Ikiwa unataka kutoa kamusi mpya kwa kuunganisha kamusi nyingi, tumia {** d1, ** d2} (kutoka Python 3.5) au dict (** d1, ** d2).

Katika Python 3.9 na baadaye, inawezekana pia kuunda kamusi mpya kwa kutumia | opereta alielezea ijayo.

| operator, | = operator (Python 3.9 na baadaye)

Tangu Python 3.9, inawezekana kuunganisha kamusi mbili ukitumia | mwendeshaji. Wakati kamusi mbili zina ufunguo sawa, thamani ya kulia ina kipaumbele.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

| Inawezekana pia kuchanganya kamusi nyingi kwa kutumia mfululizo wa waendeshaji.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+ Kama ilivyo na sasisho (), kitu upande wa kushoto kinasasishwa.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

Ongeza au sasisha vitu kadhaa: sasisha (), | = mwendeshaji

update()

Wakati hoja ya neno kuu key = value imetajwa katika njia ya sasisho (), kitufe cha ufunguo na thamani ya thamani zitaongezwa. Ikiwa kitufe kinaingiliana na kitufe kilichopo, kitaandikwa tena na thamani iliyoainishwa kwenye hoja.

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

Inawezekana pia kutaja orodha ya (ufunguo, thamani) kama hoja ya njia ya sasisho (). Ikiwa kitufe kinaingiliana na kitufe kilichopo, kitaandikwa tena na thamani iliyoainishwa kama hoja.

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

Pamoja na kazi ya zip (), vitu vinaweza kuongezwa kutoka kwenye orodha ya funguo na orodha ya maadili.

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

| = opereta (Python 3.9 na baadaye)

Na mwendeshaji | =, orodha ya (ufunguo, thamani) inaweza kutajwa upande wa kulia.

d = {'k1': 1, 'k2': 2}

d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

Kumbuka kuwa kutaja orodha na | mwendeshaji atasababisha kosa. Shughuli za kamusi-to-kamusi tu zinaungwa mkono.

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'
Copied title and URL