2016-08-21 71 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

相关问题