Python 3.x 如何更新主循环中的值
我在Python 3.x 如何更新主循环中的值,python-3.x,loops,for-loop,while-loop,Python 3.x,Loops,For Loop,While Loop,我在for循环中有while循环。我想将l值从while循环更新为for循环。 因为,在这种情况下,例如:l==5在while循环中,l==1在for循环中 for l in range(len(csvLines)): if ";" in str(csvLines[l][:2]): objectType = int(csvLines[l][:1]) while objectType == 0: l = l+1
for
循环中有while
循环。我想将l
值从while
循环更新为for
循环。
因为,在这种情况下,例如:l==5
在while循环中,l==1
在for
循环中
for l in range(len(csvLines)):
if ";" in str(csvLines[l][:2]):
objectType = int(csvLines[l][:1])
while objectType == 0:
l = l+1
if ";" in str(csvLines[l][:2]):
objectType = int(csvLines[l][:1])
else:
objectType = int(csvLines[l][:2])
else:
pass
else:
objectType = int(csvLines[l][:2])
您可以更改当前
的l
以进行迭代,但一旦下一次以进行迭代,则l
将被分配范围的下一个值。如果要修改迭代索引,请使用而例如如下所示
l = 0 # you have to initialize it manually
while l < len(csvLines):
...
l += 1 # you have to increase it manually at the end of the current iteration
l=0#您必须手动初始化它
而l
注意:在循环中增加l
时,必须确保它仍然是
或下一次访问csvLines[l]
将失败。创建一个不同的变量您的l
正在被重新定义,但我不太明白您在这里试图做什么,但我会在Python 2中避免它-我会完全避免它,更不用说Python版本了…:)<代码>范围
检查在python 3中非常快。查看Martijn Pieters关于该主题的最佳帖子,让我在这里找到它:一个简单的整数比较检查1)对于意图更明显,2)比范围对象的成员资格测试更快。。。从外观上看,OP甚至不需要计数器变量,但我们暂时忽略它……好的,不需要。但是,csvLines[l]
在任何地方都需要计数器变量,你真的不应该在范围(N)
中使用l,因为如果l
不是整数,你会突然将一个简单的O(1)检查变成一个缓慢的O(N)检查。坚持链式比较(或简单的