2012-04-13 59 views
4

我想寫一個模塊來結合使用itertools.product可變數量的列表。Python itertools.product與可變數目的論據

我能得到的最接近的是:

import itertools 
lists = [["item1","item2"],["A","b","C"], ["etc..."]] 
searchterms = list(itertools.product(lists)) 
print searchterms 

這不起作用,因爲列表是一個列表,所以它只是返回原來的順序。但我無法弄清楚如何將列表變量的每個元素傳遞給itertools。

感謝您的任何建議。

回答

14

您需要使用*到單個列表分離成其組成名單:

searchterms = list(itertools.product(*lists)) 

見Python的教程節上Unpacking Argument Lists

+0

謝謝!我在哪裏可以找到關於* var的文檔? – ralph346526 2012-04-13 21:59:21

+1

@ ralph346526我在我的編輯中添加了。 – agf 2012-04-13 22:01:01