使用python itertools来寻找所有可能的子列表元素组合,使其与目标值相加。

问题描述 投票:0回答:1

请问,我翻阅了已经回答过的问题,但找不到答案。我对python相当陌生。

我的问题是。

例如,给定

myList = [[2,4], [1,3], [3,5], [1,4]]

我如何使用python itertoolscombinations来遍历嵌套的列表(我的列表),这样我就可以找到所有可能的组合,即 我的列表 元素(即子列表),其零指数(即。我的列表[i][0])和第一指数(即。我的列表[i][1])分别相加为4和11(其中 i 在范围内(len(我的列表)).

我的列表 我想找到所有符合下面两个条件的子列表的可能组合。

sum(我的列表[i][0]) == 4 andsum(我的列表[i][1]) == 11 (其中) i 在范围内(len(我的列表))

所以,从 我的列表 我想得到的输出是

输出: [[[2,4], [1,3], [1,4]], [任何其他组合_1], [任何其他组合_2], [以此类推]] 。

请你提供任何帮助,我将不胜感激。谢谢。

python loops iteration combinations itertools
1个回答
0
投票

这应该可以。

from itertools import combinations

myList = [[2,4], [1,3], [3,5], [1,4]]

combos = [
    x for i in range(1, len(myList)+1)
    for x in combinations(myList, i)
    if sum(list(zip(*x))[0]) == 4 and sum(list(zip(*x))[1]) == 11
]
© www.soinside.com 2019 - 2024. All rights reserved.