Mam listę list, nad którymi muszę iteracyjne 3 razy (3 zagnieżdżone pętle)Python itertools: Najlepszym sposobem, aby rozpakować produkt produktu wykazu list
rangeList = [[-0.18,0.18],[0.14,0.52],[0.48,0.85]]
można to osiągnąć przy użyciu produkt Produkt następująco
from itertools import product
for val in product(product(rangeList,rangeList),rangeList):
print val
wyjście wygląda następująco
(([-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])
jego krotką krotki. Moje pytania to:
- Czy to jest dobre podejście?
- Jeśli tak, to jaka jest Bestway rozpakować wyjście produktu
val
na 3 oddzielne zmienne powiedziećxRange
,yRange
izRange
, gdzie każdy posiada wartości katalogowej powiedzieć[-0.18, 0.18]
lub[0.14, 0.52]
itp
Sprawdź argument 'repeat' dla' itertools.product'. Chcesz 'product (rangeList, repeat = 3)'. Chociaż działa również 'product (rangeList, rangeList, rangeList)'. –
'val' nie jest iteratorem, ale wynikiem' produktu' jest. A propos, jak chcesz wyglądać 'xRange',' yRange' i 'zRange'? Jakie wartości powinny zawierać? – ForceBru
możliwe jest, że chcesz 'product (* rangeList)', aby uzyskać pożądany wynik, ale nie mogę wiedzieć, chyba że pokażesz pożądane wyjście/wartości dla 'xRange' /' yRange'/'zRange' –