Bu bölüm, bir sözlüğe (dikte türü nesne) yeni öğelerin nasıl ekleneceğini veya Python’da mevcut bir öğenin değerini nasıl güncelleyeceğinizi açıklar. Birden fazla sözlüğü birleştirmek (birleştirmek, birleştirmek) da mümkündür.
- Anahtarları belirterek sözlüğe öğeler ekleyin ve güncelleyin.
- Birden çok sözlüğün birleştirilmesi (birleştirme): update (), | operatör, | = operatör
- Birden çok öğe ekleyin veya güncelleyin: update (), | = operatörü
Anahtarları belirterek sözlüğe öğeler ekleyin ve güncelleyin.
Sözlük öğelerini aşağıdaki şekilde ekleyebilir / güncelleyebilirsiniz.
Sözlük nesnesi [anahtar] = değer
Var olmayan bir anahtar belirtildiğinde, yeni bir öğe eklenir ve mevcut bir anahtar belirtildiğinde, mevcut değer güncellenir (üzerine 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}
Mevcut bir anahtarın değerini güncellemek istemiyorsanız, setdefault () yöntemini kullanın.
Birden çok sözlüğü birleştirin (birleştirin): update (), | operatör, | = operatör
update()
Sözlük nesnesinin yöntem update () için bağımsız değişken olarak başka bir sözlük nesnesi belirtilirse, tüm öğeleri eklenecektir.
Anahtar mevcut bir anahtarla çakışırsa, bağımsız değişkende belirtilen sözlüğün değeri üzerine yazılacaktı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}
Update () bağımsız değişkeninde birden çok sözlük belirtmek bir hatadır.
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 açıklandığı gibi, update () anahtar kelime argümanları olarak yeni öğeler ekleyebilir (anahtar = değer), bu nedenle sözlüğe ** ekleyin ve her öğeyi bir anahtar kelime argümanı olarak genişletin ve iletin.
d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
Önceki örneklerde olduğu gibi, update () kullanmak orijinal sözlük nesnesini güncelleyecektir.
Birden çok sözlüğü birleştirerek yeni bir sözlük oluşturmak istiyorsanız, {** d1, ** d2} (Python 3.5’ten) veya dict (** d1, ** d2) kullanın.
Python 3.9 ve sonraki sürümlerde, | kullanarak yeni bir sözlük oluşturmak da mümkündür. operatör aşağıda açıklanmıştır.
| operatör, | = operatör (Python 3.9 ve sonrası)
Python 3.9’dan bu yana, | kullanarak iki sözlüğü birleştirmek mümkündür. Şebeke. İki sözlük aynı anahtara sahipse, sağdaki değerin önceliği vardır.
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 dizi operatör kullanarak birden çok sözlüğü birleştirmek de 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}
+ Update () ile olduğu gibi, sol taraftaki nesne güncellenir.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Birden çok öğe ekleyin veya güncelleyin: update (), | = operatörü
update()
Update () yönteminde anahtar = değer anahtar kelime bağımsız değişkeni belirtildiğinde, anahtar anahtar ve değer değeri eklenecektir. Anahtar mevcut bir anahtarla çakışırsa, bağımsız değişkende belirtilen değerin üzerine yazılır.
d = {'k1': 1, 'k2': 2}
d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Update () yöntemine argüman olarak bir (anahtar, değer) listesi belirtmek de mümkündür. Anahtar mevcut bir anahtarla çakışırsa, bağımsız değişken olarak belirtilen değerin üzerine yazılı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 () işleviyle birlikte, öğeler bir anahtarlar listesinden ve bir değer listesinden eklenebilir.
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}
| = operatör (Python 3.9 ve sonrası)
| = Operatörü ile, sağ tarafta bir (anahtar, değer) listesi belirtilebilir.
d = {'k1': 1, 'k2': 2}
d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
| İle bir liste belirlediğinizi unutmayın. operatör bir hatayla sonuçlanacaktır. Yalnızca sözlükten sözlüğe işlemler desteklenir.
# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'