2016-08-21 77 views
-10

我有一個整數列表。例如[2,3,4],我想用這些整數的所有可能乘法的結果來擴展列表。這將是在這種情況下6,8,12,24。我將如何做到這一點?請記住,我想要這樣做的列表有16個項目,所以這種情況下的算法可能不是我的情況的一個很好的解決方案。有沒有辦法在Python中做到這一點?

+5

它可以用任何語言 – yossico

+0

非特異性標題來完成。沒有最小工作示例或僞代碼 – buhtz

回答

1

以下是在基本Python中的溶液(用僅包括組模塊:-)):

import itertools, functools 

lst = [2,3,4] 

comb = [itertools.combinations(lst, n) for n in range(2, len(lst) + 1)] 

lst2 = [] 
for seq in itertools.chain(*comb): 
    lst2.append(functools.reduce(lambda x, y: x * y, seq)) 

print(lst2) 

輸出:

[6, 8, 12, 24] 
+1

非常感謝! – user6708727

相關問題