尋找一種模擬嵌套循環(或笛卡爾乘積)的方法,我遇到了itertools.product函數。 我需要一個函數或一段代碼接收整數列表作爲輸入並返回一個特定的生成器。python input for itertools.product
例如:
輸入= [3,2,4] - >根=產物(x範圍(3),x範圍(2),x範圍(4))
或
輸入= [2,4, 5,6] - > gen = product(xrange(2),xrange(4),xrange(5),xrange(6))
作爲列表的大小變化我很困惑如何做到這一點而不需要基於瘋狂的ifs數量和列表大小進行大量的預編碼。
調用產品(範圍(3))或產品(xrange(3))也有區別嗎?
1讓我補充兩個細節:1)在Python 3,'範圍()'行爲就像'的xrange()'2)在實施CPython的Python 2的'xrange'僅限於C'long'數據類型(即''xrange(int(2 ** 31-1))'通常是最大範圍)。擊中那一次... – stephan 2010-06-11 07:59:22