我有一段代码在以下list.index
功能上以某种方式失败:
for line in flines:
for match in bad_data_regex.findall(line):
assert line in flines
index = flines.index(line)
flines.pop(index)
# other code that does not modify flines ....
我的代码失败:
ScriptEngine.execute:Error in script Traceback (innermost last):
File "<string>", line 168, in ?
ValueError: list.index(x): x not in list
如果该值确实不在列表中,我应该在函数AssertionError
之前得到一个。list.index
我在 Java 版本 1.6.0_18 下使用 Jython 2.2.1。
这怎么可能?
编辑:
原来产生该错误的代码不是我上面发布的。我的 Jython 解释器给了我错误的行号,并且碰巧落在了上面带有 index 函数的行上。
上面的代码确实按我的预期工作,尽管我意识到在迭代列表时修改列表并不是最佳实践。将来我会尽量避免这种情况。