Python迭代工具:解压缩列表列表产品产品的最佳方法



我有一个列表列表,我需要迭代 3 次(3 个嵌套循环)

rangeList = [[-0.18,0.18],[0.14,0.52],[0.48,0.85]]

我可以使用以下产品的产品来实现这一点

from itertools import product
for val in product(product(rangeList,rangeList),rangeList):
    print val

输出如下所示

(([-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])

它是元组的元组。我的问题是

  1. 这是一个好方法吗?
  2. 如果是这样,解压缩的最佳方法是什么产品输出val 3 个独立的变量,例如 xRangeyRangezRange,其中每个都包含[-0.18, 0.18][0.14, 0.52]等的列表值。

这可能是执行所需操作的最优雅的方式:

for xrange, yrange, zrange in product(rangeList, repeat=3):
    print xrange, yrange, zrange

但只是为了演示如何进行您正在尝试的"深度"元组解包:

for (xrange, yrange), zrange in product(product(rangeList,rangeList),rangeList):
    print xrange, yrange, zrange

最新更新