我正在尝试在Python中实现一个返回列表大小的函数。列表开头= [0,0,2,0,0,0,0,0,0,0]。我想在计算大小之前删除所有的0,所以它应该是这样的:
def cardl(list):
for j in range(0,10):
if list[j]==0:
list.remove(list[j])
return len(e[g])
问题是,不是最后返回1,而是返回9.当然我在循环中犯了一些错误。
感谢您的帮助!
答案 0 :(得分:5)
您在代码中返回的时间过早,并且在迭代时修改列表并不是一个好主意。
顺便说一下,更简单的解决方案是:
>>> lis = [0,0,2,0,0,0,0,0,0,0]
>>> len(lis) - lis.count(0)
1
答案 1 :(得分:3)
总是有标准sum
成语:
sum(1 for x in lst if x != 0)
答案 2 :(得分:1)
使用python的一些内置函数:
len(filter(None,list))