LoginSignup
6
6

More than 3 years have passed since last update.

リスト内包表記でifの判定

Last updated at Posted at 2013-09-11

リスト内包表記を使用する場合、結果のリストに含めたくない要素をifを使うことで除外できる。
例えば以下のようなコード

[ x for x in [1, 2, 3, ] if x > 2]

こうすると、出来上がるリストには3のみが含まれる。
この時、xに対して関数を適用して、尚且つ適用後の値でフィルタリングを行いたいというケースがある。
例えば以下のようなコード

def f(x):
    x = x * 2
    return x

[ f(x) for x in [1, 2, 3, ] if f(x) > 2]

このようにすると、出来上がるリストには、4, 6が含まれる。
重要なのは、こうした場合メソッドfは各要素に対して1度しか実行されないということ。
ー> この部分は誤り。

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6