- 2018-8-20
- pythonプログラミング, 総論
- python, 内包表記
- 【Python】内包表記を活用してコードを短く記述する方法 はコメントを受け付けていません

この記事では内包表記を活用する方法について解説していきます。
ただ、もしかしたら「内包表記ってどういう意味?」
と気になる方もいるでしょう。
なので、まずは内包表記とはどういうものなのか、
から解説していきたいと思います。
【Python】内包表記とは?
内包表記とはfor文ループなんかのループ処理を
簡単に記述できるようになる方法のことです。
「for文ループって何?」
と気になる方はこちらの記事をご覧ください。
⇒【Python入門】ループ処理についてわかりやすく解説
⇒【Python】for文の書き方を誰でもわかるように解説
【Python】内包表記の書き方
内包表記の書き方について解説していきますね。
まずは内包表記を使っていない例題をやってみましょう。
#例題1 x = [0,2,4,6,8,10] y = [] for z in x: y.append(z + 2) print(y)
例題1はまず
x = [0,2,4,6,8,10] y = []
と変数aに[0,2,4,6,8,10]というリストを入れました。
それから変数bには空のリストを入れました。
そして
for z in x: y.append(z + 2)
for文ループを使って
変数xに入っているリスト、それぞれに2を加えて
変数yの空のリストに付け加えていきます。
y.append(z + 2)
は変数zに入ったもともと変数xの各要素を2加え
変数yの空のリストに付け加えるという意味です。
appendは付け加えるという意味です。
実行すると
となります。
上記を内包表記を用いると
かなり簡単な記述ですみます。
短時間で記述できますし
記述ミスも減るので内包表記はかなりいい感じです。
例題2は内包表記を使ったものです。
#例題2 x = [0,2,4,6,8,10] y = [z + 2 for z in x ] print(y)
例題2について解説していきますね。
x = [0,2,4,6,8,10]
上記は例題1と同じですね。
単純にリストを変数xに代入しているだけです。
そしれここが内包表記です。
全体を角かっこ[]でくくります。
y = [z + 2 for z in x ]
inの後にリストxを記します。
またforの後に、リストの各要素を格納する変数を入れます。
ここではzですね。
それからforの前に
リストの各要素に対する処理を書きます。
ここでは各要素に対して2加えています。
それから2加えた値をyに代入しています。
で、
print(y)
yに代入された値が表示されることになります。
実行すると
となります。
例題1と同じ結果になりましたね。
【Python】内包表記の中にif文を入れる書き方
さらに内包表記にはif文を加えることも可能です。
if文について詳しく知りたい方は
こちらの記事をご覧ください。
では実際に例題3をやって確認していきましょう。
#例題3 x = [0,2,4,6,8,10] y = [z + 3 for z in x if z < 6 ] print(y)
まず
x = [0,2,4,6,8,10]
ここは例題1や例題2とまったく同じです。
変数xにリストの各要素(0,2,4,6,8,10)
を代入しています。
それから
y = [z + 3 for z in x if z < 6 ]
ですね。
if z < 6
で、xからzに渡った各要素(0,2,4,6,8,10)
で、6より小さい数の場合だけ、z + 3(zに3が加えられる)
という処理が実行されます。
なので、0,2,4
の3つの要素に対してだけ3が加えられ
結果として3,5,7が表示されるようになります。
実行すると
となります。
【Python】内包表記の書き方まとめ
ここまでの記述をまとめますと、
y = [z + 3 for z in x if z < 6 ]
というのが基本的な内包表記の書き方です。
公式のような書き方をしますと、
新しく作ったリスト = [計算式 for 計算させたいリスト in 最初に定義したリスト if 条件 ]
ということになります。
もちろん、記事の最初の方ではif文を使っていなくても
内包表記ができたわけですから、if文はあってもなくても成立します。
それから今回の記事ではリストに対して
内包表記を実行してきました。
リスト以外にも
・タプル
・セット
・辞書
に対しても内包表記を活用することができます。
タプル、辞書、セットについては
以下の記事をご覧ください。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。