Минимальное значение выведенных словарей
В задаче необходимо было разделить рандомный числовой ряд (я установил предел до 10 чисел со значениями до 100) на 2 части, таким образом чтобы разность сумм элементов этих частей была минимальна. В результате получил набор словарей, где ключ - кортеж из 2 частей, на который распределяется числовой ряд, и разность этих частей в значении словаря. Необходимо определить и вывести минимальную разность. Я пытаюсь вывести ключ/значение словаря, в котором разность минимальна. Проблема в том что все словари разделены между собой. Возможно ли как-то их объединить, загнать под единый список? Заранее благодарю.
from random import randint
import itertools
mylist_1 = []
for k in range(randint(1, 10)):
mylist_1.append(randint(1, 100))
print(mylist_1)
sumlist = sum(mylist_1)
half_numb = round(sumlist / 2)
print(half_numb)
print()
myset_1 = set(mylist_1)
for i in range(1, len(mylist_1)):
for j in itertools.combinations(mylist_1, i):
if sum(list(j)) in range(half_numb - 15, half_numb + 15):
myset_2 = set(j)
myset_3 = myset_1 - myset_2
mytuple = (tuple(myset_2), tuple(myset_3))
result = sum(list(myset_2)) - sum(list(myset_3))
diff = abs(result)
mydict = {mytuple: diff}
print(mydict)