読者です 読者をやめる 読者になる 読者になる

あれもPython,これもPython

Pythonで世界を包みたい

Pythonのリスト内包表記とif,else

Python勉強記(基本編)

リスト内包表記の中で、ifやelseを使用したいことがあります。

ifのみを使用したい場合

その場合はfor文の後ろにifを追加します。

dat = [i for i in range(10) if i%2 == 0]

print dat
# [0,2,4,5,6,8]

forで書く場合は以下の表現となります。

dat = []
for i in range(10):
    if i%2 == 0:
        dat.append(i)

リスト内包表記を使用すると、
ワンライナーで書くことが出来ますが、
横に伸びすぎて見難くなることもあります。

elseも使用したい場合

同様にelseも使用可能ですが、この場合表記が少し変わります。

dat = [i if i%2 == 0 else "spam" for i in range(10)]
print dat
# [0,"spam",2,"spam",4,"spam",6,"spam",8,"spam"]

これは三項演算子と似ています。

result = True if 1==1 else False
print result
# True

以下のように覚えると覚えやすいかもしれません。

リスト内包表記を使う場合

ifのみ elseも使う elif
ifは最後 三項演算子を最初 使用できない