for a in map:
for b in map[a]:
for c in map[b]:
for d in map[c]:
for e in map[d]:
print a+b+c+d+e
上面的代码用于创建图中一定长度的所有路径。 map[a] 表示从 a 点可以到达的点。
如何更改它以模拟具有任意数量的循环?
这就像笛卡尔积 (itertools.product),在每次迭代中 您对下一个元素的选择仅限于 map[current_point] 中的元素。
最佳答案
map = {
'a': ['b', 'c'],
'b': ['c', 'd'],
'c': ['d', 'a'],
'd': []
}
def print_paths(map, start, length, prefix = ''):
if length == 0:
print prefix
else:
for a in map[start]:
print_paths(map, a, length - 1, prefix + start)
for a in map.keys():
print_paths(map, a, 5)
关于python - 更好地等效于这个疯狂的嵌套 python for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8906351/