[Python 3.7] - ВОЗМОЖНОСТИ ПОСЛЕДОВАТЕЛЬНОСТИ
При попытке автоматизировать документацию из внутреннего кода, у меня есть «Последовательность» , которая состоит из steps
(узлы) и transitions
(пути) . Я хочу просмотреть все возможности и, следовательно, сохранить все возможности во вложенном списке:
[[seq_1],[seq_2],[seq_3]...[seq_n]
Это наглядное представление того, с чем я работаю и что я хотел бы программно решить:
EXAMPLE: A________
| | | [A can have two paths to B]
|___| |
__B |
| |________|
| | ^[This would connect to C from A]
| C
|__|
|
D
Это должно быть результатом:
ПРИМЕЧАНИЕ: A1, A2 обозначает разные пути
[[A1,B,C,D],[A2,B,C,D],[A1,B,D],[A2,B,D],[A,C,D]]
Моя первая попытка состояла в том, чтобы назначить каждому узлу массив необязательных узлов и использовать for i in x
l oop для прохождения каждой комбинации, я обнаружил, что это не очень динамично c и неэффективно из-за пропуск путей - я мог бы смягчить это с помощью условных операторов if, но я бы предпочел сначала изучить больше динамических c вариантов.
Это то, что я имел в виду в качестве своей первоначальной попытки (в псевдокоде):
Option Connections of Nodes:
A:[B1, B2, C]
B:[C, D]
C:[D]
Start at A:(and add to array)
Loop through each possibility: (add to second element of array)
loop through each possibility of A's possibility: (add to third element of array)
...
after reaching D, save array and create next array.