ray88’s diary

お仕事で困ったとき用の自分用の覚書

Python 条件付きのリストの内包表記 [ 式 for 変数 in イテラブル if 条件式 ]

python 目次 - ray88’s diary
■リスト内包表記の書式には条件文つきの書式もある。
 変数に取り出した値のうち、条件式を満たす値だけをし応して式を実行する
■書式

[ 式 for 変数 in イテラブル if 条件式 ]

■サンプルコード(1以上2未満の数値だけを取り出したリストを生成する)

#リストを設定
numbers = [2.1,0.2,0.3,1.4,3.1,0.3,1.6]
# 1以上2未満の値を取り出す
result = [n for n in numbers if 1 <= n <2]
#出力結果
print(result)


■数値以外の値を取り除く
Python データ型を判定する isinstance( ) 関数 - ray88’s diary

#リストを設定
numbers = [2.1,4,"",2.2,"1",3]
# 数値以外の値を取り除く
result = [n for n in numbers if isinstance(n,(int,float))]
#出力結果
print(result)


■複数の条件式で抽出
 ※複数条件式を入れられるが条件式が3つ以上になると可読性低下するためお勧めしない。
 以下のコードでは「5以上」かつ「偶数」の要素を取り出している

#リストを設定
numbers = [4,12,21,32,8,6,11,16]
# 5以上の偶数を抽出
result = [n for n in numbers if n >= 5 if n % 2 == 0]
#出力結果
print(result)