Pythonのリストで内包表記する方法「for・if・lambdaの書き方」

Pythonでリストをつくるときにわざわざデータを一つ一つ入力していくのはメンドウですね。そこで今回はより簡単にリストを作る方法を紹介します。

リストの中に直接for文やif文を書くことで条件付きの値をリストに格納することができます。また、lambda(ラムダ)関数も紹介します。

この記事の内容は以下の記事と重複するところがあります。

関連記事

Pythonのループ処理に使われるfor文は基本的に複数行でコロン(:)とインデントを使って書かれますが、ときには1行で書くこともできちゃいます。 今回はその一行で書く方法と、複数行で書いた時との違いを紹介していきましょう。この記事[…]

Pythonのfor文を一行で書く方法と複数行との違い

内包表記とは

内包表記とはリストのデータの条件を書き表す方法です。それに対して、リストのデータをすべて書く方法を外延表記と言います。

高校数学Aの集合でやった内容を思いだしましょう。

for文

for文を書くときは以下のようにインデントしてループするコードを書きますが、内包表記の場合はループするコードを先に書きます。

イテラブル(iterable)は反復可能という性質です。リスト、タプル、range関数などのfor文でループさせることができる物を指します。

以下は内包表記で書いた例です。ループさせるコードに変数を使うとリストに含まれる要素も変化しますが、2つ目のように同じ要素を繰り返すこともできます。

for文を2つ書くと多変数も扱うことができるので、複雑なリストも作成することができます。

if文

for文の後にif文を書くことで条件を付けることができます。

上の例はxとyが一致しない数値のときだけリストに格納しています。if文を先に書くとエラーになりますが、elseを使うときは以下のようにif-elseを先に書きます

lambda関数

lambda関数は関数の引数と戻り値を簡単に設定できます。

これをリストの内包表記に使うときはmap関数とlist関数も使います。

これをfor文でも書くと以下のようになります。

まとめ

  • 内包表記とは要素の条件を書く
  • for文→if文の順
  • if-else→for文の順
  • lambda関数、map関数、list関数をセットで使う

当ブログではPython初心者が独学で習得するためのカリキュラムを公開中!

初心者がPythonを独学で習得できたロードマップはコチラ

Pythonのリストで内包表記する方法「for・if・lambdaの書き方」
最新情報をチェックしよう!