有没有办法让for循环的运行计数不使用范围?

时间:2014-10-06 22:25:30

标签: python

如果我使用这样的范围进行for循环:

for x in range(10):

然后为了获得计数,它只是x。但是说我有一个使用列表的for循环:

layer = [somedata,someotherdata...etc]
for row in layer:
     print #the number the loop is on

有没有办法这样做除了指定一个整数计数变量并逐渐递增它,像这样?

layer = [somedata]
count = 0
for row in layer:
    print count
    count += 1

2 个答案:

答案 0 :(得分:10)

您可以使用enumerate。这将为您提供每次迭代的计数以及您重复的值。

注意:与range类似,您可以指定开始计算的索引。

for count, row in enumerate(layer):
    print count

答案 1 :(得分:3)

layer = ['a', 'b', 'c', 'd']
for index, value in enumerate(layer):
    print 'Index: {} Value: {}'.format(index,value)

输出

Index: 0 Value: a
Index: 1 Value: b
Index: 2 Value: c
Index: 3 Value: d