【发布时间】:2022-01-14 21:51:46
【问题描述】:
given_list = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total = 0
j = len(given_list) - 1
while given_list[j] < 0:
total += given_list[j]
j -= 1
print(total)
我没有得到像 j = len(given_list) – 1 和 j –= 1 这样的完整减法运算。我已经记住了,但我还是不太明白。你能逐行解释这段代码吗?
【问题讨论】:
-
列表的迭代是从列表的末尾到开头进行的。这就是为什么索引从列表的末尾开始并通过在每次迭代中删除 1 而变为 0 的原因。
-
它正在处理从最后一个元素
index=(len(...)-1)到开头的列表,但它不会在零处停止,所以这可能是一个错误。 -
循环在
given_list中的第一个非负值处停止,即1j=5。total是负值-17的总和。 -
列表索引是从零开始的,并且彼此连续,以防您甚至不确定。
标签: python list while-loop subtraction