Wan*_*ind 5 python flatten python-itertools iterable-unpacking
我有一个列表列表,我需要迭代3次(3个嵌套循环)
rangeList = [[-0.18,0.18],[0.14,0.52],[0.48,0.85]]
Run Code Online (Sandbox Code Playgroud)
我可以使用如下产品的产品实现这一点
from itertools import product
for val in product(product(rangeList,rangeList),rangeList):
print val
Run Code Online (Sandbox Code Playgroud)
输出如下
(([-0.18, 0.18], [-0.18, 0.18]), [-0.18, 0.18])
(([-0.18, 0.18], [-0.18, 0.18]), [0.14, 0.52])
(([-0.18, 0.18], [-0.18, 0.18]), [0.48, 0.85])
(([-0.18, 0.18], [0.14, 0.52]), [-0.18, 0.18])
Run Code Online (Sandbox Code Playgroud)
它是一个元组元组.我的问题是
val成3个独立的变量说xRange,yRange并且
zRange,每个拥有发言权的列表值[-0.18, 0.18]或[0.14, 0.52]等.shx*_*hx2 10
这可能是做你想做的最优雅的方式:
for xrange, yrange, zrange in product(rangeList, repeat=3):
print xrange, yrange, zrange
Run Code Online (Sandbox Code Playgroud)
但只是为了演示如何进行"深度"元组拆包你正在尝试:
for (xrange, yrange), zrange in product(product(rangeList,rangeList),rangeList):
print xrange, yrange, zrange
Run Code Online (Sandbox Code Playgroud)