在Python表中累加负数
我有以下清单:在Python表中累加负数,python,Python,我有以下清单: 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
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
mynb=0
i=0
尽管如此:
i+=1
如果我的列表[i]和(x代表x,如果x<0)将达到你的目的。
它遍历列表中的所有元素,并在您的条件下添加它们。
sum
是不言自明的。()
之间的表达式称为生成器,您可以使用它高效地循环。问题在于,在检查要索引的列表长度之前,让if条件检查值
mylist[i] <= 0
mylist[i]i0
到len(l)-1
,因为列表的长度len(l)
。此外,一个while
似乎不是一个好的解决方案。不处理索引问题的一个更简单的方法是for i in range(len(ny_list))
然后处理它。这应该是有效的:sum(i for i in my_list,如果i<0)
由于循环从未终止而导致错误,因此您继续递增i
,直到它大于列表中的项数。要“修复”您的代码,您可以颠倒条件的顺序并更改也i您可以写入和(如果xx<0,则x代表l中的x。少一个字符。:)
i <= len(mylist)
for item in my_list:
if item <= 0:
mynb += item