Szukanie różnic w wartościach dwóch słowników

0

Witam, posiadam dwa słowniki, które mają identyczne klucze, ale nie wszystkie ich wartości są takie same.

test_1 = {'a': '1', 
          'b': '3',
          'c': '4',
          'd': '9',
          'e': '5',
          'f': '2',
          'g': '3'}

test_2 = {'a': '7', 
          'b': '3',
          'c': '46',
          'd': '9',
          'e': '98',
          'f': '2',
          'g': 'hello'}

Szukam rozwiązania na wyprintowanie ich w taki sposób: klucz: pierwsza_wartość - druga_wartość, czyli np. a: 1 - 7, c: 4- 46 itd.

0

Zwraca generator, jakby słowniki były duże:

def dicts_vals_gen(d1, d2):
	return (str(x) + " " + str(d1[x]) + " - " + str(d2[x]) for x in d1.keys())
0
def dicts_vals_gen(d1, d2):
    return {k: (d1[k], d2[k]) for k in d1.keys() if k in d2.keys() and d1[k] != d2[k]}
0
>>> for k in d1:
...     v1, v2 = d1[k], d2[k]
...     if v1 != v2:
...         print(f'{k}: {v1} - {v2}')
a: 1 - 7
c: 4 - 46
e: 5 - 98
g: 3 - hello

>>> 
0
test_1 = {'a': '1', 
          'b': '3',
          'c': '4',
          'd': '9',
          'e': '5',
          'f': '2',
          'g': '3'}

test_2 = {'a': '7', 
          'b': '3',
          'c': '46',
          'd': '9',
          'e': '98',
          'f': '2',
          'g': 'hello'}
          
for k1, v1 in test_1.items():
    if test_1[k1] != test_2[k1]:
        print("dict 1 {} - {}".format(k1,v1))
        print("dict 2 {} - {}".format(k1, test_2[k1]))
        print("difference for key {} values are different {} != {}".format(k1, v1, test_2[k1]))

1 użytkowników online, w tym zalogowanych: 0, gości: 1