获取列表中满足某个总和值的元素索引

时间:2018-04-16 21:04:02

标签: python list conditional-statements selection

我试图获取列表中元素的索引,该值与等于某个数字的值相加。

a = [50, 50, 50, 50, 75, 75]
b = 125

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

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

在python中有什么简单的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

 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])