2017-01-31 11 views
0

私は、要素のリストを持っている:リストにカウンターを増やすごとに二つの要素

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

この作品とリターン:

私はこのようにペアで使用

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

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

私は行を印刷するたびにカウンタを増やしたいと思います。これどうやってするの?

+1

現在、カウンターは何をしていませんか? – depperm

+3

'x'は毎回増加しているあなたのカウンターです。それとも私は何かを見逃しましたか? –

答えて

3

まず、リストを変数名として使用しないでください。これは重大な問題を引き起こす可能性があります。

第2に、簡単な方法は、単にカウンタを初期化してループ内でインクリメントすることです。

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 

我々は第二の['elem2', 'elem3', 'elem4', 'elem5']で、最初のものは['elem1', 'elem2', 'elem3', 'elem4']で、二つのリストにそれを分けます。

最初のリストから1つを取り出し、2番目のリストから2番目のリストを取り出します。

+0

または単に 'index' ... –

+0

この場合、' len(li)-1'を実行すると、 –

+0

'index + 1'がカウントを1から開始したい場合は'インデックス '。 –

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 
関連する問題