みずりゅの自由帳

主に参加したイベントやソフトウェア技術/開発について記録しています

Python3でforループ式をワンライナーで記述する

備忘メモ。

Python3でforループを書く際、処理が1-2行なら1行(ワンライナー)で記述できる。

例えば、「配列の値」と「その値を2倍した値」を出力したい場合。

keys = [1,2,3,4,5,6,7,8]
for k in keys:
    print(k, k*2)

これは、次のように書ける。

keys = [1,2,3,4,5,6,7,8]
[(print(k, k*2)) for k in keys]

式を"["と"]"でか囲み、さらに実施したい式を"("と")"で囲む。
この時、式は値も返す。また、if文も付与できるので、次のような事もできる。

keys = [1,2,3,4,5,6,7,8]
newkeys = [(k*2) for k in keys if k % 2 == 0]

この場合、「newkeys」は以下となる。

print(newkeys)
--> [4, 8, 12, 16]