yohhoyの日記

技術的メモをしていきたい日記

リスト内包表記中のif-else構文

Pythonのリスト内包表記でif-else構文を使うときのメモ。ifのみとの記述場所の違いに注意。

a = [1, 2, 3, 4]

[x for x in a if x < 2]
# [3, 4]

[x if x % 2 == 0 else 0 for x in a]
# [0, 2, 0, 4]

[x if x % 2 == 0 else 0 for x in a if 2 < x]
# [0, 4]

# 以下はいずれも SyntaxError
[x if x < 2 for x in a]
[x for x in a if x % 2 == 0 else 0]

関連URL