【问题标题】:Get indices of elements in a list that satisfies certain sum value获取列表中满足特定总和值的元素的索引
【发布时间】:2018-04-17 16:31:35
【问题描述】:

我试图获取列表中元素的索引,它的总和等于某个数字。

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中有没有简单的方法?

谢谢。

【问题讨论】:

标签: python list conditional-statements selection


【解决方案1】:

试试这个:

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

【讨论】:

  • 只处理索引对。三倍呢?四倍?它不仅限于成对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
相关资源
最近更新 更多