【发布时间】:2018-04-06 15:46:12
【问题描述】:
首先对任何常见的错误表示抱歉。我不是以英语为母语的人,而且我是 python 新手。
由于lug_par 是一个包含4 个项目的列表,第二个for 循环应该进行4 次迭代。在第三个for 循环中,if 的条件为真,因此它应该执行 break 并退出循环。我的问题是它没有进入第三次迭代,好像 len(lug_par) 是 2 而不是 4。它直接跳到 cont_y = cont_y + 1
import re
string = "R(95DHS(60PST_35FDP_05MTR)_05A(95DHS"
lug_par = [s.start() for s in re.finditer('\(', string)]
lug_par_cierra = [s.start() for s in re.finditer('\)', string)]
cont_y = 0
for i in (0, len(lug_par_cierra)):
cont_x = 0
for j in (0, len(lug_par)):
if(lug_par[cont_x] > lug_par_cierra[cont_y]):
c = lug_par.index(cont_x)
borra = lug_par_cierra.index(c)
break
else:
print lug_par[cont_x]
cont_x = cont_x + 1
cont_y = cont_y + 1
【问题讨论】:
-
当我尝试运行它时,在第三次迭代中得到“IndexError: list index out of range”
-
因为您可能正在迭代一个元组而不是一个范围?
-
如果您不想在每个循环中迭代两次,则需要
range。 -
另外,您也没有使用
i或j(至少在此代码中没有)。为什么不直接遍历lug_par_cierra和lug_par?也许像,for _ in lug_par_cierra:
标签: python for-loop nested-loops