Lüğətə elementlər əlavə etmək və Python-a lüğətlərə qoşulmaq

Biznes

Bu bölmədə bir lüğətə yeni elementlər necə əlavə ediləcəyi (dikt tipli obyekt) və ya Python’da mövcud bir elementin dəyərinin necə yenilədiyi izah olunur. Çoxlu lüğətləri birləşdirmək (qoşmaq, birləşdirmək) də mümkündür.

  • Düymələri göstərərək lüğətə elementlər əlavə edin və yeniləyin.
  • Çoxlu lüğətlərin birləşməsi (birləşməsi): update (), | operator, | = operator
  • Birdən çox element əlavə edin və ya yeniləyin: update (), | = operator

Düymələri göstərərək lüğətə elementlər əlavə edin və yeniləyin.

Lüğət elementlərini aşağıdakı şəkildə əlavə edə / yeniləyə bilərsiniz.

Lüğət obyekti [açar] = dəyər

Mövcud olmayan bir düymə göstərildikdə, yeni bir element əlavə edilir və mövcud bir düymə göstərildikdə, mövcud dəyər yenilənir (yazılır).

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}

Mövcud bir açarın dəyərini yeniləmək istəmirsinizsə, setdefault () metodundan istifadə edin.

Çoxlu lüğətləri birləşdirin (birləşdirin): yeniləmə (), | operator, | = operator

update()

Başqa bir lüğət obyekti lüğət obyektinin metod yeniləməsinin () arqumenti kimi göstərilsə, bütün elementləri əlavə ediləcəkdir.

Düymə mövcud düymə ilə üst-üstə düşərsə, arqumentdə göstərilən lüğətin üstünə yazılacaqdır.

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}

Yeniləmə () mübahisəsində birdən çox lüğətin göstərilməsi səhvdir.

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

Daha sonra izah edildiyi kimi update () yeni elementləri açar söz arqumentləri kimi əlavə edə bilər (key = dəyər), buna görə lüğətə ** əlavə edin və hər elementi açar söz arqumenti kimi genişləndirin və ötürün.

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

Əvvəlki nümunələrdə olduğu kimi yeniləmə () istifadə edərək orijinal lüğət obyektini yeniləyəcəkdir.

Çoxlu lüğətləri birləşdirərək yeni bir lüğət yaratmaq istəyirsinizsə, {** d1, ** d2} (Python 3.5-dən) və ya dict (** d1, ** d2) istifadə edin.

Python 3.9 və sonrakı versiyasında |. İstifadə edərək yeni bir lüğət yaratmaq da mümkündür operator sonrakı təsvir.

| operator, | = operator (Python 3.9 və sonrası)

Python 3.9 olduğundan, | istifadə edərək iki lüğəti birləşdirmək mümkündür operator. İki lüğət eyni açara sahib olduqda, sağdakı üstünlük prioritetə ​​malikdir.

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}

| Bir sıra operatorlardan istifadə etməklə birdən çox lüğəti birləşdirmək də mümkündür.

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}

+ Yeniləmə () ilə olduğu kimi, sol tərəfdəki obyekt də yenilənir.

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

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

Birdən çox element əlavə edin və ya yeniləyin: update (), | = operator

update()

Yeniləmə () metodunda açar söz mübahisə açarı = dəyər göstərildikdə, açar açar və dəyər dəyəri əlavə ediləcəkdir. Açar mövcud bir düymə ilə üst-üstə düşərsə, arqumentdə göstərilən dəyərin üzərinə yazılacaqdır.

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

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

Yeniləmə () metoduna arqument olaraq (açar, dəyər) siyahısını da göstərmək mümkündür. Açar mövcud bir düymə ilə üst-üstə düşərsə, arqument olaraq göstərilən dəyərin üzərinə yazılacaqdır.

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

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

Zip () funksiyası ilə birlikdə düymələr siyahısından və dəyərlər siyahısından elementlər əlavə edilə bilər.

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 və sonrası)

| = Operatoru ilə sağ tərəfdə (açar, dəyər) siyahısı müəyyən edilə bilər.

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

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

| İlə bir siyahının göstərilməsinə diqqət yetirin operator səhvlə nəticələnəcəkdir. Yalnız lüğətdən lüğətə əməliyyatlar dəstəklənir.

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