我试图获取列表中元素的索引,该值与等于某个数字的值相加。
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中有什么简单的方法吗?
谢谢。答案 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])