Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何更新主循环中的值_Python 3.x_Loops_For Loop_While Loop - Fatal编程技术网

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)检查。坚持链式比较(或简单的