mylist="'a','b','c'"
count=0
i=0
while count< len(mylist):
if mylist[i]==mylist[i+1]:
print mylist[i]
count +=1
i +=1
エラー:
File "<string>", line 6, in <module>
IndexError: string index out of range
最後の (n 番目の) 要素に到達すると、比較する n+1 が見つからないため、エラーが発生すると想定しています。
興味深いことに、私は以前にこれを行ったことがあり、より大きなリストでこの問題を抱えていなかったと思います: ここに例があります (それを修正した Raymond Hettinger の功績による)
list=['a','a','x','c','e','e','f','f','f']
i=0
count = 0
while count < len(list)-2:
if list[i] == list[i+1]:
if list [i+1] != list [i+2]:
print list[i]
i+=1
count +=1
else:
print "no"
count += 1
else:
i +=1
count += 1
私が試みた方法でリストをクロールする場合、「範囲外」にならないようにするための修正はありますか? これを非常に大きなリストに実装する予定です。たとえば、「list[i]==list[i+16]」かどうかを確認する必要があります。今後は、「if int(mylist[i+3])-int(mylist[i+7])>10: newerlist.append[mylist[i]」のような条件を追加したいと考えています。ですから、私がこの問題を解決することが重要です。
break文を入れようかと思ったのですが、だめでした。
これが最も効率的ではないことはわかっていますが、それが最もよく理解しているところです。