def filter_index_by_total(lst, total):
index_lst = []
current_total = 0
for i, num in enumerate(lst):
current_total += num
if current_total <= total:
index_lst.append(i)
else:
break
return index_lst
my_list = [10, 20, 30, 40, 50, 60]
my_total = 90
result = filter_index_by_total(my_list, my_total)
print(result)
输出:
[0, 1, 2]
解释:
以上代码使用一个名为 filter_index_by_total() 的函数实现了该问题。该函数接受两个参数:要筛选的列表和总值。函数使用一个 index_lst 来存储符合条件的索引,使用 current_total 来跟踪每个索引的累加总和,如果 current_total 小于等于总值,则将当前索引添加到索引列表里,否则退出循环。最终,函数返回索引列表。在代码示例中,我们传递 my_list 和 my_total 作为参数给函数,并打印函数返回值。以上代码的输出是 [0, 1, 2],它表示在列表中前三个元素的总和小于等于 my_total。