測定デバイスの負の数やエラーなどのアーティファクトを取り除くために、使用しているデータをフィルタリングしようとしています。これを行うためにジェネレーターを使用するというアイデアで遊んでいます。私はPython 2.7.2を使用しています
testlist = [12,2,1,1,1,0,-3,-3,-1]
gen = (i for i, x in enumerate(testlist) if x < 0 or x > 2.5)
for i in gen: testlist.pop(i)
print testlist
これは以下を返します:
[2, 1, 1, 1, 0, -3]
私の質問は、更新された「テストリスト」に -3 の値が表示されるのはなぜですか?