Skip to main content
 首页 » 编程设计

python之在 for 循环中

2025年05月04日15shanyou

我想知道列表中第一个出现在任何其他数字之前的零的数量。

例如:
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