我有一個數組列表,我想獲得數組中元素的笛卡爾乘積。如何將itertools.product應用於列表的元素?
我將用一個例子來說明這更加具體......
itertools.product似乎這樣的伎倆,但我被困在一個小細節。
arrays = [(-1,+1), (-2,+2), (-3,+3)];
如果我做
cp = list(itertools.product(arrays));
我得到
cp = cp0 = [((-1, 1),), ((-2, 2),), ((-3, 3),)]
但我希望得到的是
cp1 = [(-1,-2,-3), (-1,-2,+3), (-1,+2,-3), (-1,+2,+3), ..., (+1,+2,-3), (+1,+2,+3)].
我已經嘗試了一些不同的東西:
cp = list(itertools.product(itertools.islice(arrays, len(arrays))));
cp = list(itertools.product(iter(arrays, len(arrays))));
他們都給我cp0而不是cp1。
任何想法?
在此先感謝。
您已經有了下面的答案,但是這對於迭代工具產品功能比較好的使用案例:https://www.hackerrank.com/challenges/itertools-product – Afflatus 2016-09-16 19:31:06