我正在尝试过滤一些我正在使用的数据,以去除我的测量设备中的一些伪影,例如负数和错误。我一直在玩使用生成器来做到这一点的想法。我正在使用 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 值会出现在更新的“测试列表”中?