リスト内包表記と条件式

  • 内包表記条件式は色々できる

リスト内包表記というのは便利で、for文と組み合わせて次のようなリストが作れます。

>>> a = [2*x for x in range(5)]
>>> a
[0, 2, 4, 6, 8]

条件式を加えても同様の機能が得られます。

>>> a = [x for x in range(5) if x%2 == 0]
>>> a
[0, 2, 4]

次のように書くとエラーになりますが、

>>> a = [x if x%2 == 0 for x in range(5)]
SyntaxError: invalid syntax

でも、elseで落としどころを用意してあげると、

>>> a = [x if x%2 == 0 else 'N' for x in range(5)]
>>> a
[0, 'N', 2, 'N', 4]

通る。ふーん。けどこうなると、'N'抜くのがめんどいなぁ