Di vê beşê de tê vegotin ka meriv çawa hêmanên nû li ferhengê zêde dike (objeya celebê dikê) an nirxa hêmanek heyî di Python de nûve dike. Di heman demê de gengaz e ku meriv gelek ferhengan li hev bîne (bike, bibe yek).
- Bi diyarkirina mifteyan hêmanan li ferhengê zêde bikin û nûve bikin.
- Lihevkirina (yekkirina) pir ferhengan: nûvekirin (), | kargêr, | = karger
- Pir hêmanan zêde bikin an nûve bikin: nûvekirin (), | = operator
Bi diyarkirina mifteyan hêmanan li ferhengê zêde bikin û nûve bikin.
Hûn dikarin hêmanên ferhengê bi awayê jêrîn lê zêde bikin / nûve bikin.
Tewra ferhengê [key] = nirx
Dema ku mifteyek ne-heyî tête diyar kirin, hêmanek nû tête zêdekirin, û dema ku mifteyek heyî tête diyar kirin, nirxa heyî nûve dibe (ji nû ve hatî nivîsandin).
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}
Heke hûn naxwazin nirxa kilîta ku heye nûve bikin, rêbaza setdefault () bikar bînin.
Pir ferhengan li hev bînin (bikin yek): nûvekirin (), | kargêr, | = karger
update()
Ger hêmanek ferhengokek din wekî argûman ji nûvekirina rêbaza hêmana ferhengê re were diyar kirin (), dê hemî hêmanên wê werin zêdekirin.
Ger mifte bi keyek heyî re li hevûdu bike, ew ê bi nirxê ferhenga ku di argumanê de hatî diyar kirin ji nû ve were nivîsandin.
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}
Di argumana nûvekirinê () de diyar kirina gelek ferhengan çewtiyek e.
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
Wekî ku paşê hate şirove kirin, nûvekirin () dikare hêmanên nû wekî argumanên bêjeya sereke (key = nirx) zêde bike, ji ber vê yekê tenê ** li ferhengê zêde bike û her hêmanê wekî argumana bêjeya sereke berfireh bike û derbas bike.
d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
Mîna di nimûneyên berê de, bi karanîna nûvekirin () dê tiştê orjînala ferhengê nûve bike.
Heke hûn dixwazin bi yekkirina gelek ferhengan ferhengokek nû çêbikin, {** d1, ** d2} (ji Python 3.5) an jî dikt (** d1, ** d2) bikar bînin.
Di Python 3.9 û paşê de, ew jî gengaz e ku ferhengokek nû bi karanîna | operator paşê şirove kirin.
| operator, | = operator (Python 3.9 û şûnda)
Ji Python 3.9-an ve, meriv dikare bi bikaranîna |. -Yê du ferhengan bike yek makînevan. Gava ku du ferheng xwedan mifteyek yek bin, girîngiya nirxê rastê heye.
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}
| Di heman demê de gengaz e ku bi karanîna rêzek kargêran gelek ferheng li hev werin.
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}
+ Wekî nûvekirin (), tiştê li milê çepê nûvekirî ye.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Pir hêmanan zêde bikin an nûve bikin: nûvekirin (), | = operator
update()
Dema ku mifta keyword argûman = nirx di rêbaza nûvekirinê de () were diyar kirin, dê mifta mifteyê û nirxê nirxê were zêdekirin. Heke mifte bi keyek heyî re li hevûdu bike, ew ê bi nirxa ku di argumanê de hatî diyar kirin ji nû ve were nivîsandin.
d = {'k1': 1, 'k2': 2}
d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Di heman demê de gengaz e ku meriv navnîşek navnîşa (kilît, nirx) wekî argumana rêbaza nûvekirinê () diyar bike. Heke mifte bi keyek heyî re li hevûdu bike, ew ê bi nirxa ku wekî argumant hatî diyarkirin ji nû ve were nivîsandin.
d = {'k1': 1, 'k2': 2}
d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Digel fonksiyona zip (), hêman dikarin ji navnîşek kilîtan û navnîşek nirxan werin zêdekirin.
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}
| = operator (Python 3.9 û şûnda)
Bi operator | = re, navnîşek (kilît, nirx) li milê rastê dikare were diyar kirin.
d = {'k1': 1, 'k2': 2}
d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Têbînî ku diyar kirina navnîşek bi | operator dê çewtiyek encam bide. Tenê karûbarên ferheng-ferheng ferheng têne piştgirî kirin.
# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'