我有这个清单:
my_list = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
然后我用这个代码把负数加起来:
mynb = 0
i = 0
while True:
i += 1
if my_list[i] <= 0 and i <= len(my_list):
mynb += my_list[i]
print(mynb)
if i > 100: # avoid infinite loop
break
我犯了个错误
IndexError: list index out of range
我已尝试修复此错误,但找不到任何解决方案。你知道吗
问题产生于让if条件在检查要索引的列表长度之前检查值。你知道吗
之前评估
造成你的错误。你知道吗
比执行while循环更好的方法是:
sum(x for x in l if x < 0)
会达到你的目的。 它遍历列表中的所有元素,并将它们添加到您的条件下。sum
是不言自明的。()
之间的表达式称为生成器,您可以使用它高效地循环。你知道吗相关问题 更多 >
编程相关推荐