Python には、各反復で例外をスローできるリスト内包表記があります。
たとえば、私が持っている場合:
eggs = (1,3,0,3,2)
[1/egg for egg in eggs]
ZeroDivisionError
3 番目の要素で例外が発生します。
この例外を処理し、リスト内包表記の実行を続行するにはどうすればよいですか?
私が考えることができる唯一の方法は、ヘルパー関数を使用することです:
def spam(egg):
try:
return 1/egg
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
しかし、これは私には少し面倒に見えます。
Pythonでこれを行うより良い方法はありますか?
注: これは単純な例 (上記の「for instance」を参照) であり、実際の例には何らかのコンテキストが必要なため、考案したものです。ゼロ除算エラーを回避することには興味がありませんが、リスト内包表記で例外を処理することに興味があります。