我正在解决一个列表中的难题,循环遍历每个索引并将值汇总到当前索引的左侧和右侧。如果它找到一个索引,其中左边的值的总和等于右边的值的总和,则返回该索引。循环遍历返回负索引
例如: [1,2,3,4,3,2,1] 如果我在索引3(值为4),我们看到元素左右值的总和是等于。 (1 + 2 + 3)=(3 + 2 + 1)。
但是,当输入是负值列表时,它会返回负值索引。这是我的代码:
def get_equal_sum(list):
for i in list:
if sum(list[:i]) == sum(list[i+1:]):
print i
list = [1,2,3,4,3,2,1]
get_equal_sum(list)
>>> 3
list = [-1,-2,-3,-4,-3,-2,-1]
get_equal_sum(list)
>>> -4
为什么返回-4,而不是3?
谢谢!
第二个列表中没有'3',怎么能打印'3'?您正在打印元素,而不是索引。 – Carcigenicate
你可能不应该在你的变量中隐藏内置的类型/函数('list')。 –
你并没有返回索引,而是返回值本身。使用'enumerate'获取索引。 –