Shtimi i elementeve në një fjalor dhe bashkimi i fjalorëve në Python

biznes

Kjo pjesë shpjegon se si të shtoni elemente të rinj në një fjalor (objekt i tipit dikt) ose të azhurnoni vlerën e një elementi ekzistues në Python. Alsoshtë gjithashtu e mundur të bashkohen (bashkohen, bashkohen) fjalorë të shumtë.

  • Shtoni dhe azhurnoni elemente në fjalor duke specifikuar çelësat.
  • Bashkimi (bashkimi) i fjalorëve të shumtë: azhurnimi (), | operator, | = operator
  • Shtoni ose azhurnoni shumë elementë: azhurnoni (), | = operatorin

Shtoni dhe azhurnoni elemente në fjalor duke specifikuar çelësat.

Ju mund të shtoni / azhurnoni elementet e fjalorit në mënyrën vijuese.

Objekti i fjalorit [çelësi] = vlera

Kur specifikohet një çelës inekzistent, shtohet një element i ri dhe kur specifikohet një çelës ekzistues, vlera ekzistuese azhurnohet (mbishkruhet).

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}

Nëse nuk doni të azhurnoni vlerën e një çelësi që ekziston, përdorni metodën setdefault ().

Bashkoni (bashkoni) fjalorë të shumtë: azhurnimi (), | operator, | = operator

update()

Nëse një objekt tjetër fjalor specifikohet si argument në azhurnimin e metodës së objektit fjalor (), të gjithë elementët e tij do të shtohen.

Nëse çelësi mbivendoset me një çelës ekzistues, ai do të mbishkruhet me vlerën e fjalorit të specifikuar në argument.

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}

Shtë një gabim për të specifikuar fjalorë të shumtë në argumentin update ().

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

Siç u shpjegua më vonë, azhurnimi () mund të shtojë elemente të rinj si argumente të fjalëve kyçe (çelësi = vlera), kështu që thjesht shtoni ** në fjalor dhe zgjeroni secilin element si një argument të fjalës kyçe dhe kalojeni atë.

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

Ashtu si në shembujt e mëparshëm, përdorimi i update () do të azhurnojë objektin origjinal të fjalorit.

Nëse dëshironi të krijoni një fjalor të ri duke bashkuar fjalorë të shumtë, përdorni {** d1, ** d2} (nga Python 3.5) ose dikt (** d1, ** d2).

Në Python 3.9 dhe më vonë, është gjithashtu e mundur të krijoni një fjalor të ri duke përdorur | operatori i përshkruar më tej.

| operator, | = operator (Python 3.9 dhe më vonë)

Që nga Python 3.9, është e mundur të bashkoni dy fjalorë duke përdorur | operatori Kur dy fjalorë kanë të njëjtin çelës, vlera në të djathtë ka përparësi.

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}

| Alsoshtë gjithashtu e mundur të kombinohen fjalorë të shumtë duke përdorur një seri operatorësh.

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}

+ Ashtu si me azhurnimin (), objekti në anën e majtë azhurnohet.

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

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

Shtoni ose azhurnoni shumë elementë: azhurnoni (), | = operatorin

update()

Kur çelësi i argumentit të fjalës kyçe = vlera specifikohet në metodën e azhurnimit (), çelësi kryesor dhe vlera e vlerës do të shtohen. Nëse çelësi mbivendoset me një çelës ekzistues, ai do të mbishkruhet me vlerën e specifikuar në argument.

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

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

Alsoshtë gjithashtu e mundur të specifikoni një listë të (çelësit, vlerës) si një argument i metodës së azhurnimit (). Nëse çelësi mbivendoset me një çelës ekzistues, ai do të mbishkruhet me vlerën e specifikuar si argument.

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

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

Në kombinim me funksionin zip (), elementet mund të shtohen nga një listë çelësash dhe një listë vlerash.

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 dhe më vonë)

Me operatorin | =, një listë e (çelësit, vlerës) mund të specifikohet në anën e djathtë.

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

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

Vini re se specifikimi i një liste me | operatori do të rezultojë në një gabim. Vetëm operacionet fjalor në fjalor mbështeten.

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