Сөздікке элементтер қосу және Python-да сөздіктерге қосылу

Іскерлік

Бұл бөлім сөздікке жаңа элементтерді қалай қосуға болатынын (дикт типті объект) немесе Python-да бар элементтің мәнін жаңартуды түсіндіреді. Сонымен қатар бірнеше сөздіктерді біріктіруге (біріктіруге, біріктіруге) болады.

  • Кілттерді көрсету арқылы сөздікке элементтерді қосыңыз және жаңартыңыз.
  • Бірнеше сөздікті біріктіру (біріктіру): жаңарту (), | оператор, | = оператор
  • Бірнеше элементтерді қосу немесе жаңарту: жаңарту (), | = оператор

Кілттерді көрсету арқылы сөздікке элементтерді қосыңыз және жаңартыңыз.

Сөздік элементтерін келесі жолмен қосуға / жаңартуға болады.

Сөздік нысаны [кілт] = мән

Жоқ кілт көрсетілген кезде жаңа элемент қосылады, ал кілт көрсетілген кезде бар мән жаңартылады (қайта жазылады).

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}

Егер сіз бар кілттің мәнін жаңартқыңыз келмесе, setdefault () әдісін қолданыңыз.

Бірнеше сөздікті біріктіру (біріктіру): жаңарту (), | оператор, | = оператор

update()

Егер басқа сөздік нысаны сөздік объектісінің әдісін жаңартудың аргументі ретінде көрсетілсе (), оның барлық элементтері қосылады.

Егер кілт бұрыннан бар кілтпен қабаттасса, оған аргументте көрсетілген сөздіктің мәні жазылады.

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}

Жаңарту () аргументінде бірнеше сөздіктерді көрсету қате.

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

Кейінірек түсіндірілгендей, update () жаңа элементтерді кілт сөз аргументтері ретінде қосуы мүмкін (key = value), сондықтан ** сөздікке ** қосып, әр элементті кілт сөзі ретінде кеңейтіп, оны жіберіңіз.

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

Алдыңғы мысалдардағыдай, жаңарту () көмегімен бастапқы сөздік нысаны жаңартылады.

Егер сіз көптеген сөздіктерді біріктіру арқылы жаңа сөздік жасағыңыз келсе, {** d1, ** d2} (Python 3.5-тен) немесе dict (** d1, ** d2) пайдаланыңыз.

Python 3.9 және одан кейінгі нұсқаларында | көмегімен жаңа сөздік жасауға болады келесіде сипатталған оператор.

| оператор, | = оператор (Python 3.9 және одан кейінгі)

Python 3.9 болғандықтан, | көмегімен екі сөздікті біріктіруге болады оператор. Екі сөздікте бірдей кілт болған кезде оң жақтағы мән басым болады.

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}

| Сонымен қатар бірнеше сөздіктерді операторлар қатарын қолдану арқылы біріктіруге болады.

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}

+ () Жаңарту сияқты, сол жақтағы объект жаңартылады.

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

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

Бірнеше элементтерді қосу немесе жаңарту: жаңарту (), | = оператор

update()

Жаңарту () әдісінде аргумент кілті = мән кілт сөзі көрсетілген кезде кілт кілті мен мән мәні қосылады. Егер кілт бар кілтпен қабаттасса, ол аргументте көрсетілген мәнмен жазылады.

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

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

Жаңарту () әдісіне дәлел ретінде (кілт, мән) тізімін көрсетуге болады. Егер кілт бар кілтпен қабаттасса, ол аргумент ретінде көрсетілген мәнмен жазылады.

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

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

Zip () функциясымен бірге элементтерді кілттер тізімінен және мәндер тізімінен қосуға болады.

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}

| = оператор (Python 3.9 және кейінгі нұсқасы)

| = Операторының көмегімен оң жағында (кілт, мән) тізімін көрсетуге болады.

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

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

| Бар тізімді көрсететінін ескеріңіз оператор қатеге әкеледі. Тек сөздік-сөздік операцияларына қолдау көрсетіледі.

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