2016-06-07 44 views
1

我需要計算幾個列表元素的笛卡爾乘積。看來最好的方法是使用itertools,特別是itertools.product。現在,我想要使用的列表本身包含在列表中,我不能只爲itertools.product使用更大的列表。我想知道如何提取列表以使它們可以與itertools.product一起使用。通過itertools.product使用列表內部列表

這裏是表示該問題的一個示例:

import itertools 

elements=[[1, 2], [3, 4]] 
product=itertools.product(elements) 
print product 

此打印[([1,2],),([3,4],)。我想不是的東西等同於以下,但在那裏我沒有給「元素」單獨的所有元素:

product=itertools.product(elements[0], elements[1]) 
print product 

其打印[(1,3),(1,4),( 2,3),(2,4)]。

謝謝。

+4

只要使用'itertools.product(*元素)' –

+1

http://stackoverflow.com/questions/3480184/unpack-a-list-in-python – ayhan

+0

優秀的,謝謝。我沒有想到「解包」這個詞 – whatamess

回答

2

Unpack列表中的星號運算符*將清單應用於您的子列表。

product=list(itertools.product(*elements))