Форум сайта python.su
Есть 2 списка всегда из 5 элементов - словарей, значения которых тоже словарь например
x = [{'2': {'1': 7}, '3':{'1':0, '5': 0}}, {}, {}, {}, {}] y = [{'2': {'1': 1, '2': 5}}, {}, {}, {}, {}]
x + y = [{'2': {'1': 8, '2': 5}, '3':{'1':0, '5': 0}}, {}, {}, {}, {}]
Отредактировано polin11 (Окт. 30, 2023 16:32:51)
Офлайн
>>> def f1(lst1, lst2): ... out = [] ... for i, j in zip(lst1, lst2): ... out.append(f2(i, j)) ... return out ... >>> def f2(dct1, dct2): ... out = {} ... inter = set(dct1) & set(dct2) ... xor = set(dct1) ^ set(dct2) ... for i in inter: ... out[i] = f3(dct1[i], dct2[i]) ... for i in xor: ... if i in dct1: ... out[i] = dct1[i] ... else: ... out[i] = dct2[i] ... return out ... >>> def f3(dct1, dct2): ... out = {} ... inter = set(dct1) & set(dct2) ... xor = set(dct1) ^ set(dct2) ... for i in inter: ... out[i] = dct1[i] + dct2[i] ... for i in xor: ... if i in dct1: ... out[i] = dct1[i] ... else: ... out[i] = dct2[i] ... return out ... >>> x = [{'2': {'1': 7}, '3':{'1':0, '5': 0}}, {}, {}, {}, {}] >>> y = [{'2': {'1': 1, '2': 5}}, {}, {}, {}, {}] >>> >>> out = f1(x, y) >>> out [{'2': {'1': 8, '2': 5}, '3': {'1': 0, '5': 0}}, {}, {}, {}, {}] >>>
Офлайн