2016-10-25 18 views
0

私はPythonを初めて使いました。これは単純な1行または1文字の答えかもしれませんが、私はそれの周りに私の頭を包むように見えません。私は繰り返しを行い、現在のインデックスの後のインデックスの要素が同じかどうかをチェックし、それがあればそれを削除するリストをチェックします。Python:範囲外のインデックス

while i < len(list): 
    if list[i] == list[i+1]: 
     del list[i]; 
    i+=1; 

"リスト[i]を==リスト[I + 1]場合:" 私は問題がから来ている知っている私は、リストの最後に取得 "リストには、[I + 1]" の外になりますインデックスの範囲。問題は、コードが範囲外になるポイントに到達したときにコードを停止する方法がわからないことです。

+4

リストの名前を、リストの名前にしないでください。これは、Pythonの組み込み関数です。 – RoadRunner

+1

最初の行をwhile(i + 1) Koushik

+0

として作成してください@John Aranoこれをチェックしてください: http://ideone.com/ocUjHu – RoadRunner

答えて

0

まず、listはPythonの組み込み関数です。変数の名前。

あなたの問題自体に。あなたのエラーの修正は簡単です:

while i < (len(_list) - 1): 
    if _list[i] == _list[i+1]: 
     del _list[i] 
    i+=1; 

はIndexError理由は、最後の繰り返しiですでに最後のインデックスであり、あなたがi+1位置にある要素を取得しようとしているということです。

+0

Pythonにセミコロンはありません。 – Nurjan

+0

私は実際にOPコードをコピーして、最初の行を修正しました。その答えで、didntの通知を修正しました。 – table

+0

@Nurzhan - はいあります。論理行の最後には必要ないだけです。 '_'で始まる – TigerhawkT3

関連する問題