2017-01-31 112 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