2016-05-31 4 views
-1

のは、私はこのコードを持っているとしましょう:間違ったラインでPython用 - 最後の要素への参照

fields = ['a', 'b', 'c'] 

for field in fields: 
    d.pop(field) 
    d.append(field - 1) # Incorrect 

、我々は2回目の繰り返し(「B」)である場合は、最後の1に参照する方法( 'a')?

あなたがこの方法でリストを反復処理したい場合は、あなたが使用することができますすることはできません
+1

あなたが達成しようとしている上でより多くの情報を提供することはできますか? – SilentMonk

答えて

5

使用はenumerate

for i,field in enumerate(fields): 
    d.pop(field) 
    if i > 0: 
    d.append(fields[i-1]) 
+1

フィールドはインデックス '-1'を持たないので、もちろん最初の反復で失敗します – Jieter

+0

@ Jieter Edited。 OPは明らかにそれを処理する必要があります。彼がやろうとしていることはあまり明確ではありません。 –

2

for i in range(len(fields)): 
    d.pop(fields[i]) 
    d.append(fields[i-1]) 

そして、明らかに、あなたは最初のループのために何をしたいの挙動を考える必要があります。

+0

いいえ、あなたがする必要はありません。より良い代替手段である 'enumerate'を使うことができます。 'range(len(list))'はpythonicな方法ではありません。 –

関連する問題