python - 像图形一样遍历二维数组
问题描述
我已经在二维数组中存储了一个图,我想打印从任何有向图从左到右通过组的所有可能路径。我在下面给出了一个示例,并希望打印从第一组(在此示例中为 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
解决方案
根据描述,您需要变量“地图”中提到的所有路径的可能组合。因此,您可以使用 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)]
推荐阅读
- maven - 如何从依赖项中打开 URL,但仅在将其添加到项目时打开一次
- angular - 如何使用angular2获取检查和取消选中的值
- python - 将字典转换为 Numpy 数组
- mysql - 如何在 MySQL 中执行全文搜索连接多个表
- mplab - MPLAB 以外的 IC 24AA64I/SN 编程器?
- ios - 对 .well-known/apple-app-site-association 的请求过多 - 是否推荐使用 Cache 标头?
- function - 获取泛型函数的类型而不调用打字稿中的函数
- python - 计算平均值并附加到新数组numpy
- javascript - 使用 jquery.rules 时表单验证不起作用
- microservices - 我应该为带有嵌入式 UI 的 Web 应用程序使用 api 网关吗?