我想知道列表中第一个出现在任何其他数字之前的零的数量。
例如:
L1 = [0, 0, 0, 0, 0, 1, 2] - 输出应该是 5,也就是零的个数。
L2 = [1, 0, 0, 0, 0, 0, 2] - 输出应为零。虽然这个列表中有 5 个零,但列表是从 1 开始的。
这是我的代码:
k = 0
for i in L1:
while i == 0:
k = k + 1
但它不起作用。我认为这是一个无限循环,但我不知道为什么。
请您参考如下方法:
想想第一次将 i 设置为 0 时会发生什么。
while 循环将开始并且永不停止,因为i 在该循环中没有改变。
根据以下成绩单,对您的成绩单稍作修改,您会更好:
>>> list1 = [0,0,0,0,0,1,2]
>>> count = 0
>>> for item in list1:
... if item == 0:
... count = count + 1
... else:
... break
...
>>> print count
5
或稍短的变体,它会立即中断非零值,否则添加一个。
>>> list1 = [0,0,0,0,0,1,2]
>>> count = 0
>>> for item in list1:
... if item != 0: break
... count = count + 1
...
>>> print count
5
