forループでループ対象のリストから要素を削除してしまったりすると、まったく想定と違った結果になってしまうことがあります。 pythonプログラミングを始めたばかりの人がよくハマるトラブルです。日本語Web圏にはイマイチよくまとまった記事がないようなので、まとめておきます。 スポンサーリンク 問題の概要 たとえば、0から9のリストから偶数だけ取り出そうとして、こんなコードを書いてみます。 >>> lst = [0,1,2,3,4,5,6,7,8,9] >>> for x in lst: ... if x%2 != 0: ... lst.remove(x) ... >>> lst [0, 2, 4, 6, 8] 一見すると上手く動いているようです。調子に乗って、今度は3の倍数を取り出そうとしてみます。 >>> lst = [0,1,2,3,4,5,6,7,8,9] >>> for x in