Как получить соответствующие ребра из списка узлов - PullRequest
1 голос
/ 07 апреля 2019

У меня есть список узлов в форме, подобной этой: Nodelist = [[1,2,3], [4,7,6], [7,2,9]] Такой, что есть ребро, котороесоединяет их, например, 1 подключен к 2, а 2 к 3. Это не полный набор узлов в моем графике.

Что я хочу сделать, это вернуть список ребер, если есть связь междудва узла в Nodelist.то есть output = [(1,2), (2,3), (3,1), ...]

Что я уже знаю, каждый узел в подсписке Nodelist подключен, т.е.грань между (1,2), (2,3), (3,1).

Я надеюсь, что то, что я спрашиваю, имеет смысл, любая помощь будет оценена.Пожалуйста, дайте мне знать, если мне нужно что-то уточнить.

1 Ответ

1 голос
/ 07 апреля 2019

Попробуйте это:

from itertools import combinations

[list(combinations(x, 2)) for x in node_list] 

combinations дает все комбинации списка данного размера.Так что combinations([1,2,3], 2) даст вам [(1,2), (2,3), (3,1)] Просто сделайте это для каждого из node_lists.

...