Python 获取满足特定和值的列表中元素的索引

Python 获取满足特定和值的列表中元素的索引,python,list,conditional-statements,selection,Python,List,Conditional Statements,Selection,我试图得到一个列表中元素的索引,它的值总和等于某个数字 a = [50, 50, 50, 50, 75, 75] b = 125 在上面的示例中,我正在查找列表a中的元素的索引,其合计值等于b(=125)。我正在寻找的索引组合是[0,4],对应于第一个数字50和第一个数字75 我找到了一种方法,首先使用itertools.combines创建列表a中元素的可能组合,然后过滤所有总和等于125的组合。它导致指数[0,4],[1,4],[2,4],。。。对于包含许多元素的列表来说,这是非常有问题的

我试图得到一个列表中元素的索引,它的值总和等于某个数字

a = [50, 50, 50, 50, 75, 75]
b = 125
在上面的示例中,我正在查找列表a中的元素的索引,其合计值等于b(=125)。我正在寻找的索引组合是[0,4],对应于第一个数字50和第一个数字75

我找到了一种方法,首先使用itertools.combines创建列表a中元素的可能组合,然后过滤所有总和等于125的组合。它导致指数[0,4],[1,4],[2,4],。。。对于包含许多元素的列表来说,这是非常有问题的

python中有什么简单的方法吗

谢谢。

试试这个:

 li = []
 for i,j in enumerate(a):
      for z,x in enumerate(a):
         if int(x)+int(j) == int(b) and i>z:
             li.append([i,z])

事后来看,这似乎是子集和问题的一个衍生问题,它是NP完全问题。没有有效的算法可以找到您要查找的内容,只需遍历所有可能的组合即可。另请参阅,感谢您的回复..它只处理索引对。那三个呢?四个?它不仅限于成对的。