備忘メモ。
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]