Tôi có một danh sách liệt kê trên mà tôi cần phải lặp 3 lần (3 vòng lồng nhau)Python itertools: Cách tốt nhất để giải nén sản phẩm của sản phẩm của danh sách liệt kê
rangeList = [[-0.18,0.18],[0.14,0.52],[0.48,0.85]]
tôi có thể đạt được điều này sản phẩm sử dụng của sản phẩm như sau
from itertools import product
for val in product(product(rangeList,rangeList),rangeList):
print val
Kết quả trông như sau
(([-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])
nó một tuple của tuple. Câu hỏi của tôi là
- Đây có phải là cách tiếp cận tốt không?
- Nếu vậy, Bestway để giải nén đầu ra của sản phẩm
val
thành 3 biến riêng biệt nóixRange
,yRange
vàzRange
, trong đó mỗi một giá trị nắm giữ danh sách là những gì nói[-0.18, 0.18]
hoặc[0.14, 0.52]
, vv
Xem đối số 'lặp lại' để' itertools.product'. Bạn muốn 'sản phẩm (rangeList, repeat = 3)'. Mặc dù 'product (rangeList, rangeList, rangeList)' cũng hoạt động. –
'val' không phải là một trình lặp, nhưng kết quả của' sản phẩm' là. Bằng cách này, những gì bạn muốn 'xRange',' yRange' và 'zRange' của bạn trông giống như thế nào? Họ nên chứa những giá trị nào? – ForceBru
có thể bạn muốn 'product (* rangeList)' để có được kết quả mong muốn nhưng tôi không thể biết trừ khi bạn hiển thị kết quả/giá trị mong muốn cho 'xRange' /' yRange'/'zRange' –