有没有办法在Python for循环中访问迭代计数器?

时间:2012-01-27 15:37:33

标签: python foreach

有没有办法在Python for循环中访问迭代计数器?

我通常使用自己的变量并在任何循环中增加它。有更多的pythonic方式吗?

2 个答案:

答案 0 :(得分:17)

使用enumerate

sequence = [1, 45, 65, 7]
for i, val in enumerate(sequence):
    print i, val

输出:

0 1
1 45
2 65
3 7

答案 1 :(得分:3)

你不仅可以使用enumerate内置函数,而且还有一个鲜为人知的可选第二个参数,即从以下开始的值:

f = open(...)
for linenumber, line in enumerate(f, 1):
    # etc.

通过这种方式,您可以为元素提供更自然的编号,而不是为第一个元素获取零,并且必须在某个位置添加1。