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)