У меня есть этот список:
list = [ { 1: [3], 2: [6] }, { 3: [4,5], 6: [8] }, { 4: [7], 5: [7] } ]
Он представляет полную корреляцию между идентификаторами объектов для всех объектов, которые у меня есть.
Что я хочу извлечь из этого списка:
l1 = [ { 1: [3] }, { 3: [4,5] }, { 4: [7], 5: [7] } ]
l2 = [ { 2: [6] }, { 6: [8] } ]
Позвольте мне дать некоторые объяснения!
Для наглядности, пожалуйста, найдите изображение ниже:

Итак, как вы можете видеть, каждый объект представлен своим идентификатором. Чтобы сформировать «список», я начинаю с идентификаторов периферийных объектов слева, такими идентификаторами будут ключи первого словаря («списка»), значениями этих ключей являются идентификаторы объектов, подключенных к правильно (мы помещаем значение (я) в список). Эти значения будут ключами второго словаря (не повторяйте ключи, если вы повторили значения из предыдущего словаря, просто правый раз), и повторяйте такие шаги до достижения последних идентификаторов.
Эти объекты формируют шаблон (ы) в соответствии с отношением между их идентификаторами. В задаче мне будет дано количество шаблонов, которые они формируют. На картинке, на которую я дал ссылку, они образуют две структуры.
Шаблон: группа объектов, идентификаторы которых связаны друг с другом определенным образом