次の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 関数のある行にたどり着きました。
上記のコードは意図したとおりに機能しますが、繰り返しながらリストを変更するのはベスト プラクティスではないことはわかっています。将来的には可能な限りそれを避けるようにします。