我正在解決一個列表中的難題,循環遍歷每個索引並將值彙總到當前索引的左側和右側。如果它找到一個索引,其中左邊的值的總和等於右邊的值的總和,則返回該索引。循環遍歷返回負索引
例如: [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'獲取索引。 –