Sözlükler ile fonksiyon yapma

iki sözlük oluştursam ve iki sözlükğü birbirine ekleyebilceğim ve aynı elemanlarının birleşebileceği bir metot var mı? veya fonksiyona cevirebilir miyim?

Merhaba, şöyle bir işini görür mü?

a = dict()
b = dict()
for k, v in a:
    b[k] = v

# b, birleşmiş sözlüktür

Aklıma metod gelmiyor.

Sizin kodunuzu temel alarak şunu yazdım:

def birleştir(x, y):
    for k, v in y.items():
        x[k] = v
    return x

a = {"a": 1, "b": 2, "c": 3}
b = {"c": 4, "d": 5, "e": 6}

c = birleştir(a, b)

print(c)
# Çıktı: {'a': 1, 'b': 2, 'c': 4, 'd': 5, 'e': 6}
3 Beğeni

3.9+

sozluk_1 | sozluk_2

3.5+

{**sozluk_1, **sozluk_2}
6 Beğeni

kodunuz çalışıyor fakat benim istediğim çıktıyı vermiyor.
çıktı şöyle olmalıydı:
{ ‘a’:1, ‘b’:2, ‘c’:7, ‘d’:5, ‘e’:6} yani aynı ifadeler arsında toplama yapmasını istiyorum aslında.

O zaman şu şekilde yapabilirsiniz:

def birleştir(x, y):
    for k, v in y.items():
        if k in x:
            x[k] += v
        else:
            x[k] = v
    return x

a = {"a": 1, "b": 2, "c": 3}
b = {"c": 4, "d": 5, "e": 6}

c = birleştir(a, b)

print(c)
# Çıktı: {'a': 1, 'b': 2, 'c': 7, 'd': 5, 'e': 6}

Yanlız, eğer veri türleri farklı ise hata verir(
...

a = {"a":  1 } # int
b = {"a": "1"} # str

c = birleştir(a, b)

 |
V

Traceback (most recent call last):
  ...
TypeError: unsupported operand type(s) for +=: 'int' and 'str'

).

1 Beğeni

Isteklerinizi parca parca soylemek yerine bir kerede birazcik vakit ayirarak duzgun yazarsaniz bu kadar kisinin vaktini bosa harcamamis olursunuz.

4 Beğeni

İsteklerimi parça parça söylediğim bir durum yok . İlk başta belirttiğimin ne demek olduğunu anlamamış arkadaşlar açıklama yaptım . Eğer ilk yazdığım şeyi okursanız anlayacağınızı düşünüyorum.

Ilk basta belirttiginizin anahtarlari ayni olan sayilarin toplanmasi olarak yorumlanmasinin imkani yok. “Birazcik vakit ayirarak duzgun” yazmaktan kastim da buydu; buraya sorulari tanimadigimiz ve ne yapmaya calistigimizi bilmeyen insanlar okuyacakmis gibi yazmak lazim.

2 Beğeni