【Python】⑱内包表記
始めに
前回は辞書について学んでいきました。
今回は内容表記について学んでいきましょう。
前回の記事はこちら
内包表記とは
内包表記という機能を使うと、リストなどのデータ構造を定義するプログラムを簡潔に書けます。
内包表記はコンプリヘンション(comprehension)とも呼ばれます。
例➀内包表記
例として[1,4,9,16,25,36,49,64,81]というリストを定義する定義するリストを書いてみます。
リストについてはこちら
比較として、リストのappendメソッドによる要素の追加を使って書いてみましょう。
今までの知識で階乗のリストを書こうとすると、上記のようなプログラムになります。
それでは内包表記を使って、同じリストを作るプログラムを簡単に書いてみましょう。
内包表記では上記のように書くことができます。
以前までの知識では3行にわたって書く文章でしたが、内包表記を使用することで1行で書くことができ、とてもシンプルです。
上記のようにリストの内包表記では以下のように表します。
----------
[式 for 変数 in イテラブル]
----------
イテラブルの部分には、リストや文字列、range関数やenumerate関数などを指定することができます。
内包表記とif
内包表記にifを組み合わせると、条件に合う値だけをリストについて追加することができます。
以下のように表します。
----------
[式 for 変数 in イテラブル if 条件]
----------
例➁内包表記とif
1~10までの数のうち、3の倍数の数だけを選択し、リストを作成します。
また、内包表記を使って集合や、辞書を作成することもできます。
内包表記による集合の作成
----------
{式 for 変数 in イテラブル if 条件}
----------
内包表記による辞書の作成
----------
{キーの式 : 式の値 for 変数 in イテラブル if 条件}
----------
内包表記と三項演算子
if文などの条件を表す式と紛らわしいので、今回は三項演算子と呼びます。
三項演算子は、以下のように表します。
----------
Trueの値 if 条件 else Falseの値
----------
通常のif文でも表すことはできますが、三項演算子では簡潔にプログラムを書くことがあります。
例➂三項演算子
xの数値が3の倍数か、そうではないかを判断するものを書きます。
3の倍数の時'xは3の倍数です'、3の倍数以外の時は'xは3の倍数ではありません'と表示します。
x=3は、3の倍数であるため上記のように表示されます。
x=2は、3の倍数ではないため上記のように表示されます。
終わりに
今回は内包表記について学んでいきました。
正直、慣れていないため難しく感じてしまうのですが、数行に渡って書いていたものをたった1行でまとめて書けることはすごい魅力ですよね。
シンプルで美しいプログラミングができるよう頑張りましょう!