У меня есть список списков, над которыми мне нужно повторять 3 раза (3 вложенные циклы)Python itertools: Лучший способ распаковать продукт продукта списка списков
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])
Сво кортеж кортеж. Мои вопросы:
- Это хороший подход?
- Если да, то это Bestway распаковать выход продукта
val
в 3 отдельные переменные говорятxRange
,yRange
иzRange
, где каждая содержит значение списка, скажем,[-0.18, 0.18]
или[0.14, 0.52]
т.д.
Посмотрите аргумент 'repeat' в' itertools.product'. Вы хотите 'product (rangeList, repeat = 3)'. Хотя 'product (rangeList, rangeList, rangeList)' также работает. –
'val' - не итератор, а результат' продукта'. Кстати, вы хотите, чтобы ваши 'xRange',' yRange' и 'zRange' выглядели? Какие значения они должны содержать? – ForceBru
Возможно, вы хотите 'product (* rangeList)' получить желаемый результат, но я не могу знать, если вы не покажете желаемый результат/значения для 'xRange' /' yRange'/'zRange' –