2017-01-31 146 views
0

在列表中增加计数器我有元素的列表:每两个元素

list = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5'] 

我在对以这种方式使用:

for x in range(0, len(list)-1): 
    print(list[x], list[x+1]) 

运作方式及回报:

('elem1', 'elem2') 
('elem2', 'elem3') 
('elem3', 'elem4') 
('elem4', 'elem5') 

我想每次打印一行时增加一个计数器。我怎样才能做到这一点?

+1

柜台做什么,而不是它目前不做什么? – depperm

+3

'x'是你的柜台,因为它每次都在增加。还是我错过了什么? –

回答

3

首先不要使用列表作为变量名称,这可能会导致一些严重的问题。

其次,简单的方法就是初始化一个计数器并在循环内增加它。

li = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5'] 

cnt = 0 
for index in range(0, len(li)-1): 
    cnt += 1 
    print(li[index], li[index+1]) 

print cnt 

另一种优雅的方式来创建所需的输出是:

li = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5'] 

for cnt, (v, w) in enumerate(zip(li[:-1], li[1:])): 
    print [v, w] 

print cnt 

这里我们把它分成两个列表,第一个是['elem1', 'elem2', 'elem3', 'elem4'],二是['elem2', 'elem3', 'elem4', 'elem5']

每次迭代我们从第一个列表中选取一个,从第二个列表中选取第二个。

+0

或者只是'index' ... –

+0

'index-1'在这种情况下,如果我们想通过'len(li)-1' –

+0

'index + 1'运行,如果你想让count从1开始,否则, index'。 –

1

该解决方案声明了一个名为count变量并增加它的每一次迭代

listX = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5'] 
count = 0 
for x in range(0, len(listX)-1): 
    print(list[x], list[x+1]) 
    count += 1 
1

可以前宣布要与初始值的变量for循环,增加它里面的为:

counter = 0 
    for x in range(0, len(list)-1): 
     print(list[x], list[x+1]) 
     counter += 1