【发布时间】:2016-09-10 16:27:38
【问题描述】:
在 Python 2.7 中,我需要一个返回 list or tuple of int 的所有可能产品的方法。 IE。如果输入是(2, 2, 3, 4),那么我想要一个类似的输出
-
(3, 4, 4), 2 * 2 = 4 -
(2, 4, 6), 2 * 3 = 6 -
(2, 3, 8), 2 * 4 = 8 -
(3, 4, 4), 2 * 2 = 4 -
(2, 2, 12), 3 * 4 = 12 -
(2, 24), 2 * 3 * 4 = 24 -
(3, 16), 2 * 2 * 4 = 16 -
(4, 12), 2 * 2 * 3 = 12 -
(48), 2 * 2 * 3 * 4 = 48
包含在list or tuple 中。我认为使用itertools 中的combinations 可能会实现一个不错的实现,但我将不胜感激。请注意,我只对不同的列表感兴趣,int 的顺序不起作用。
编辑
为了澄清一些进一步的解释。取第一个输出列表。输入是(2, 2, 3, 4)(总是)。然后我从列表中取出 2 和 2 out 并将它们相乘,所以现在我得到了一个列表 (3, 4, 4)。 3 和 4 来自输入,最后 4 来自产品。
我还没有尝试过任何事情,因为我无法绕着这种循环转头。但是我不能停止思考这个问题,所以如果我得到建议,我会添加一些代码。
【问题讨论】:
-
您能展示一下您的尝试吗?谢谢。
-
@Mr.goosberry 我还没有尝试过任何事情,因为我无法绕着那种循环转头。我注意到这个问题我得到了很多减分。我做错了什么?
-
您的输出不清楚。例如,为什么元组
(3, 4, 4)在产品2 * 2 = 4之前?此外,您可能因为没有展示自己的任何代码而投了反对票,您提供了毫无意义的期望输出,而且通常您展示的自己的工作很少。你可以编辑你的问题来解决这些问题,你可能很快就会得到支持和一些好的答案。我鼓励你做这样的编辑。 -
@mr.bjerre 是的。如果您根本找不到解决方法,请确保您的输出定义明确,并为您的问题提供清晰易懂的示例。
-
@RoryDaulton 输入为
(2, 2, 3, 4)。然后我从列表中取出 2 和 2 out 并将它们相乘,所以现在我得到了一个列表(3, 4, 4)。 3 和 4 来自输入,最后 4 来自产品。有意义吗?
标签: python algorithm combinations combinatorics