0
data = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii', 'jjj']

これはまさに私が望むように機能します。

i = 0
print
for i in range(len(data) - 1):
    print data[i] + ' ' + data[i + 1]

以下のコードは機能しません。それを機能させる方法はありますenumerateか、それとも上記のソリューションが最も簡単/最良の方法ですか?

print
for i, d in enumerate(data):
    print d + ' ' + d[i + 1] # IndexError: string index out of range

または、一度に 2 つの要素にアクセスする別の方法はありますか?

4

1 に答える 1

1

enumerate関数では、はiリスト要素のインデックス位置を表し、 th インデックス位置dにある要素の値を表します。iしたがって、実行しているときは、変数d[i+1]をスライスしています。d

の値がブロック内の variableiの最後の要素と等しい場合、の番目の要素にアクセスするとインデックス エラーがスローされます ( に番目の要素が存在しないため) 。と要素の両方を同時に使用する必要があるため、単独で使用しても問題が完全に解決されない場合があります。使いたい場合は、コードを次のように変更する必要がありますdataenumeratei+1data i.e., data[i+1]i+1dataii+1enumerate

for i,d in enumerate(data):
    if i < (len(data) - 1):
        print d + ' ' + data[i+1]
于 2013-07-15T08:43:48.513 に答える