私は現在Pythonでプログラムを開発していますが、言語のforeachループやリスト構造に何か問題があったことに気付きました。forループまたはリストのPythonの奇妙な動作
x = [1,2,2,2,2]
for i in x:
x.remove(i)
print x
さてここで問題は、私もこのコードという、単純である、:私は私のプログラムと私の一般的な例の両方で同じ誤った動作を得るため、私は、簡単にするために私の問題の一般的な例をあげますリストからすべての要素を削除することになっていました。まあ、問題は、実行後、私は常に2つの残りの要素をリストに入れます。
私は間違っていますか?すべての助けを前もってありがとう。
編集:私は、これは一例であり、リストを空にしたくない...
あなたが経験する問題には以下の解決策がありますが、「x = []」に短縮する必要があるとは思えません。問題の原因となっている実際のコードを投稿するともっと面白いかもしれませんか? – gnud
本当の問題を投稿する必要があります。 list.removeは、リストを検索してから、削除されたonに続くすべての要素を前方にシフトする必要があるため、かなり非効率的です。 – Miles