Перенос значений из словаря в список, с измененниями
Есть словарь new_dict:
{109: [(1190, 135), (1514, 459)], 233: [(1352, 135), (1514, 945)], 108: [(1514, 135), (1676, 459)], 59: [(1676, 135), (1190, 297)], 24: [(1352, 297), (1676, 621)], 60: [(1514, 297), (1352, 945)], 229: [(1676, 297), (1352, 783)], 72: [(1190, 459), (1190, 783)], 33: [(1352, 459), (1676, 783)], 77: [(1190, 621), (1514, 621)], 0: [(1352, 621), (1190, 945)], 255: [(1514, 783), (1676, 945)]}
Слева значение, справа 2 пары координат.
С помошью :
for key in new_dict:
print(new_dict[key])
можно получить координаты:
[(1190, 135), (1676, 135)]
[(1352, 135), (1352, 459)]
[(1514, 135), (1514, 459)]
[(1190, 297), (1514, 783)]
[(1352, 297), (1676, 621)]
[(1514, 297), (1190, 459)]
[(1676, 297), (1676, 783)]
[(1676, 459), (1190, 783)]
[(1190, 621), (1514, 621)]
[(1352, 621), (1352, 945)]
[(1352, 783), (1676, 945)]
[(1190, 945), (1514, 945)]
Из этих координат нужно получить список вида:
new_coords = [(1190, 135), (1676, 135), (1352, 135), (1352, 459),
(1514, 135), (1514, 459), (1190, 297), (1514, 783)...
Тоесть ключи словаря нужно как бы разделить на две части и записать в правильном порядке, слева направо.
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
from itertools import chain
new_dict = {109: [(1190, 135), (1514, 459)], 233: [(1352, 135), (1514, 945)], 108: [(1514, 135), (1676, 459)], 59: [(1676, 135), (1190, 297)], 24: [(1352, 297), (1676, 621)], 60: [(1514, 297), (1352, 945)], 229: [(1676, 297), (1352, 783)], 72: [(1190, 459), (1190, 783)], 33: [(1352, 459), (1676, 783)], 77: [(1190, 621), (1514, 621)], 0: [(1352, 621), (1190, 945)], 255: [(1514, 783), (1676, 945)]}
coords = list(chain.from_iterable(new_dict.values()))