如何获得整数组合具有特定的总和和特定的起始元素?

时间:2016-02-27 07:41:46

标签: python combinations

我需要从整数列表中找出满足组合和等于某个特定值的条件的组合。例如,我有列表[1,2,3,4]我需要找出所有组合只有两个整数值,并且整数的总和等于5.我尝试使用itertools.combinations()获得所有组合但是如何将和条件包括在内。而且我还需要知道如何指定组合的起始元素。示例组合仅以1开头。是否存在任何库,请告诉我找出最快的组合查找方法

2 个答案:

答案 0 :(得分:1)

IIUC,您可以简单地将其与conditional list comprehension结合使用。

,例如,

>>> [(i, j) for (i, j) in itertools.combinations([1,2,3,4], 2) if i + j == 5]
[(1, 4), (2, 3)]

或者,仅以1开头的那些

[(i, j) for (i, j) in itertools.combinations([1,2,3,4], 2) if i == 1]

(当然,你可以结合你想要的任何条件。)

答案 1 :(得分:0)

您可以使用filter

filter(lambda x: sum(x) == 5 and x[0] == 1, combinations([1, 2, 3, 4], 2))