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