Saya memiliki dua kamus python. Salah satunya adalah kamus bersarang dan satu lagi kamus biasa seperti:

dict1 = {"12345": {"a": 2, "b": 4, "c": 3, "d": 5}, "67891": {"c": 5, "d": 4, "e": 2, "f": 1}}
dict2 = {"12345": 3, "67891": 4}

Saya ingin mengalikan setiap nilai di dalam dict1 dengan nilai dict2 di mana kunci antara dict1 dan dict2 cocok. Hasilnya akan seperti ini:

# Desired output:
dict1 = {"12345": {"a": 6, "b": 12, "c": 9, "d": 15}, "67891": {"c": 20, "d": 16, "e": 8, "f": 4}}

Saya mencoba memasukkan kode ini tetapi sepertinya tidak berhasil.

for k, v in dict1.items():
    v= {v: v*dict2[k])}
0
Aurelius Erton Biko Oentoro 13 Mei 2021, 21:52

1 menjawab

Jawaban Terbaik

Menggunakan loop dan pemahaman dict

Misalnya:

dict1 = {"12345": {"a": 2, "b": 4, "c": 3, "d": 5}, "67891": {"c": 5, "d": 4, "e": 2, "f": 1}}
dict2 = {"12345": 3, "67891": 4}

for k, v in dict2.items():
    dict1[k] = {m: n*v for m, n in dict1[k].items()}

print(dict1)

Keluaran:

{'12345': {'a': 6, 'b': 12, 'c': 9, 'd': 15},
 '67891': {'c': 20, 'd': 16, 'e': 8, 'f': 4}}
1
Rakesh 13 Mei 2021, 18:55