Að bæta þætti við orðabók og tengja orðabækur í Python

Viðskipti

Í þessum kafla er útskýrt hvernig bæta má nýjum atriðum við orðabók (dict type hlut) eða uppfæra gildi núverandi þáttar í Python. Það er einnig mögulegt að sameina (sameina, sameina) margar orðabækur.

  • Bættu við og uppfærðu þætti í orðabókina með því að tilgreina lykla.
  • Sameining (sameining) margra orðabóka: uppfærsla (), | rekstraraðili, | = rekstraraðili
  • Bæta við eða uppfæra marga þætti: update (), | = operator

Bættu við og uppfærðu þætti í orðabókina með því að tilgreina lykla.

Þú getur bætt við / uppfært orðabókarþætti á eftirfarandi hátt.

Orðabókarhlutur [lykill] = gildi

Þegar lykill sem ekki er tilgreindur er bætt við nýjum þætti og þegar núverandi lykill er tilgreindur er núverandi gildi uppfært (skrifað yfir).

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}

Ef þú vilt ekki uppfæra gildi lykils sem er til, notaðu aðferðina setdefault ().

Sameina (sameina) margar orðabækur: uppfæra (), | rekstraraðili, | = rekstraraðili

update()

Ef annar orðabókarhlutur er tilgreindur sem röksemd fyrir aðferð uppfærslu orðabókarhlutarins (), verður öllum þáttum hans bætt við.

Ef lykillinn skarast við núverandi lykil verður hann skrifaður yfir gildi orðasafnsins sem tilgreint er í rökunum.

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}

Það er villa að tilgreina margar orðabækur í update () rökunum.

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

Eins og síðar var útskýrt, þá getur update () bætt við nýjum þáttum sem rök fyrir lykilorð (key = gildi), svo að bæta bara við ** í orðabókina og stækka hvern þátt sem lykilorðarök og senda það.

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

Eins og í fyrri dæmum mun uppfærsla orðabókarhlutarins vera uppfærð með því að nota update ().

Ef þú vilt búa til nýja orðabók með því að sameina margar orðabækur skaltu nota {** d1, ** d2} (úr Python 3.5) eða dict (** d1, ** d2).

Í Python 3.9 og síðar er einnig hægt að búa til nýja orðabók með | rekstraraðila lýst næst.

| stjórnandi, | = stjórnandi (Python 3.9 og nýrri)

Síðan Python 3.9 er mögulegt að sameina tvær orðabækur með | rekstraraðili. Þegar tvær orðabækur hafa sama lykilinn hefur gildi til hægri forgang.

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}

| Það er einnig mögulegt að sameina margar orðabækur með því að nota röð rekstraraðila.

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}

+ Eins og með uppfærslu () er hluturinn vinstra megin uppfærður.

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

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

Bæta við eða uppfæra marga þætti: update (), | = operator

update()

Þegar lykilorðin rifrildi lykill = gildi er tilgreind í uppfærslu () aðferðinni verður lykill lykill og gildi gildi bætt við. Ef lykillinn skarast við núverandi lykil verður hann skrifaður yfir gildinu sem tilgreint er í rökunum.

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

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

Það er líka hægt að tilgreina lista yfir (lykil, gildi) sem rök fyrir uppfærslu () aðferðinni. Ef lykillinn skarast við núverandi lykil verður hann skrifaður yfir með gildinu sem tilgreint er sem rök.

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

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

Í sambandi við zip () aðgerðina er hægt að bæta við þáttum úr lista yfir lykla og lista yfir gildi.

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}

| = stjórnandi (Python 3.9 og nýrri)

Með stjórnandanum | = er hægt að tilgreina lista yfir (lykil, gildi) hægra megin.

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

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

Athugaðu að tilgreina lista með | rekstraraðili mun leiða til villu. Aðeins orðabók-til-orðabók aðgerðir eru studdar.

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