Creating a counter inside a Python for loop
本问题已经有最佳答案,请猛点这里访问。
显然,如果我们这样做,计数器将保持在0,因为它在每次迭代开始时被重置:
1 2 3 4 5 | for thing in stuff: count = 0 print count count =+1 write_f.write(thing) |
但是,因为我在函数内部有这个代码,所以也不能这样做:
1 2 3 4 5 | count=0 for thing in stuff: print count count =+1 write_f.write(thing) |
我有几个不同的缩进级别,不管我如何移动
这(在for循环之前创建一个额外的变量)不是Python式的。
当有一个额外的计数器时,迭代项目的方法是使用
1 2 | for index, item in enumerate(iterable): print(index, item) |
因此,例如,对于清单
1 2 3 4 | lst = ["a","b","c"] for index, item in enumerate(lst): print(index, item) |
…并生成输出:
1 2 3 | 0 a 1 b 2 c |
强烈建议您尽可能始终使用python的内置函数来创建"pythonic解决方案"。还有枚举文档。
如果您需要更多关于枚举的信息,可以查找pep 279——enumerate()内置函数。