首页 > 解决方案 > 像图形一样遍历二维数组

问题描述

我已经在二维数组中存储了一个图,我想打印从任何有向图从左到右通过组的所有可能路径。我在下面给出了一个示例,并希望打印从第一组(在此示例中为 G1)到任何最后一组(在此示例中为 G3)的所有路径。我无法构建递归或递归方法来打印具有任意数量组的所有路径。所以我需要帮助来构建手动迭代系统/算法。谢谢。

graph:

在此处输入图像描述

script.py

map = [
  [1,2],
  [3,4,5],
  [6,7]
]

// Print all paths
// Note :- every array in the map is a group

output:

1 -> 3 -> 6
1 -> 3 -> 7
1 -> 4 -> 6
1 -> 4 -> 7
1 -> 5 -> 6
1 -> 5 -> 7
2 -> 3 -> 6
2 -> 3 -> 7
2 -> 4 -> 6
2 -> 4 -> 7
2 -> 5 -> 6
2 -> 5 -> 7

标签: python

解决方案


根据描述,您需要变量“地图”中提到的所有路径的可能组合。因此,您可以使用 itertools 来获取路径的所有可能组合。

我想这应该适合你:

import itertools
pattern = list(itertools.product(*map))
print(pattern)

输出

[(1, 3, 6),
(1, 3, 7),
(1, 4, 6),
(1, 4, 7),
(1, 5, 6),
(1, 5, 7),
(2, 3, 6),
(2, 3, 7),
(2, 4, 6),
(2, 4, 7),
(2, 5, 6),
(2, 5, 7)]

推荐阅读