Tôi có một danh sách các mảng và tôi muốn lấy sản phẩm Descartes của các phần tử trong mảng.Làm cách nào để áp dụng itertools.product cho các phần tử của danh sách danh sách?
tôi sẽ sử dụng một ví dụ để làm cho cụ thể hơn này ...
itertools.product dường như làm các trick nhưng tôi bị mắc kẹt trong một chi tiết nhỏ.
arrays = [(-1,+1), (-2,+2), (-3,+3)];
Nếu tôi làm
cp = list(itertools.product(arrays));
tôi nhận được
cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
Nhưng những gì tôi muốn nhận được là
cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
Tôi đã thử một vài điều khác nhau:
cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
Tất cả đều cho tôi cp0 thay vì cp1.
Bất kỳ ý tưởng nào?
Xin cảm ơn trước.
Bạn đã có câu trả lời dưới đây, nhưng điều này có một số trường hợp sử dụng tốt cho các chức năng itertools sản phẩm: https://www.hackerrank.com/challenges/itertools-product – Afflatus