2017-09-16 11 views
-1

私は初心者です。私は '!'を削除するPythonプログラムを書いています。と '。'リストから。ユーザーは任意の文字列を入力します。 Pythonはそれをリストに変換して削除します。と。変更されたリストを再度印刷する。
List index out of range:私はそれがエラーを示しrange(len(y)-1)range(len(y))に行う場合でもforループで反復処理した際のリストインデックスが範囲外です。

x = input("Enter a string: ") 

y = list(x) 

for i in range(len(y) - 1): 

    if y[i] == '!' or y[i] == '.': 
     y.pop(i) 
print("Altered list is: ",y) 

:ここに私のコードです。

+0

アイテムを削除している間は反復:いいえ –

+0

アイテムを削除して各繰り返しでリストを変更しています。それをしないでください。代わりに、保持したいアイテムを含むリストを再作成します。 – roganjosh

+0

皆さん、ありがとうございました。私はちょうどその簡単な点をもう一度聞いていませんでした。 – user8619561

答えて

0

あなたが変更しているリストを反復しています...うまく終了できません。

は、代わりにこの方法を試してみてください:

y = [elt for elt in y if elt != "!" or elt != "."] 

それは望ましくない要素を省略し、あなたのリストを再構築します。

+1

ありがとうReblochon。 – user8619561

関連する問題