在python中与range一起使用时如何增加循环索引? [英] How to increment for loop index when used with range in python?

查看:244
本文介绍了在python中与range一起使用时如何增加循环索引?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个for循环,如下所示:

I have a for loop as follows:

i=0 
while true:
 print("i initialized as", i)
 for i in range(0,3):
      print ("inside for",i)
      i = i + 1
 print("exit from for i value is",i)

现在在while无限循环内有for,每次在"i"内部每次迭代都从"0"开始,理想情况下,"i"应该获得增量值并从2开始,输出为:

Now inside the while infinite loop there is for and everytime inside for "i" iteration starts over from "0" ideally "i" should get the incremented value and start from 2, output is:

 inside for 0
 inside for 1
 inside for 2

 second iteration:

 inside for 0
 inside for 1
 inside for 2
 .
 .

理想的输出如下:

 inside for 0
 inside for 1
 inside for 2

 second iteration:
 inside for 3
 inside for 4
 inside for 5
 .
 .

因此,要点是"i"不会保存,并且每次循环都从0开始,因此在进入for循环之前,如何使"i"从上一个递增的值开始.

So the point is "i" value is not saved and every time loop starts from 0, So how can i make "i" to start from the last incremented value before entering to for loop.

推荐答案

使用for i in ...时无法控制i.设置为for循环在循环时决定的任何内容.

You have no control over i when you're using for i in .... It's set to whatever the for loop decides when looping.

在这里,只是不要在循环索引中使用i,而使用_之类的匿名变量进行3次计数,将i用作全局"计数器:

Here, just don't use i for your loop index, use an anonymous variable like _ to count 3 times, keep i as a "global" counter:

i=0
while i<10:  # just to stop after a while for the demo
 print("i initialized as", i)
 for _ in range(0,3):
      print ("inside for",i)
      i = i + 1
 print("exit from for i value is",i)

输出:

inside for 0
inside for 1
inside for 2
exit from for i value is 3
i initialized as 3
inside for 3
inside for 4
inside for 5
exit from for i value is 6
i initialized as 6
inside for 6
inside for 7
inside for 8
exit from for i value is 9
i initialized as 9
inside for 9
inside for 10
inside for 11
exit from for i value is 12

在旁边:while true应该是while True.与Java& C ++,布尔值在python中大写.

Aside: while true should be while True. Unlike Java & C++, Booleans are capitalized in python.

这篇关于在python中与range一起使用时如何增加循环索引?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆