我能有感謝名單的笛卡爾積到itertools.product()函數:不同尺寸的笛卡爾乘積
lists = [['A', 'B'], ['1', '2'], ['x', 'y']]
combinations = itertools.product(*lists)
# [('A', '1', 'x'), ('A', '2', 'y'), ..., ('B', '2', 'y')]
我要的是同樣的事情,但是各種大小:
all_comb = magicfunction(lists)
# [('A', '1', 'x'), ..., ('B', '2', 'y'), ('A', '1'), ('A', '2'), ... ('2', 'y'), ... ('y')]
我看不到一個明顯的方法來做到這一點。我需要一個方法,可以讓我設置元組的最小和最大尺寸(我處理長列表,只需要7到3的大小,列表數量和它們的大小的組合)。
我的名單更像是:
lists = [['A', 'B', 'C'], ['1', '2'], ['x', 'y', 'z', 'u'], ...] # size may go to a few dozens
我誤解組合的第二個論點的目的()到期到文檔在其示例中使用字符串作爲迭代的事實。有一個明顯的方法來做到這一點。謝謝。我想我可以通過限制範圍來設置最大尺寸。 – Sildar