我想知道列表中第一个出现在任何其他数字之前的零的数量。
例如:
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
关于python - 在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523519/