icon
icon

Pythonのリストの内包表記について現役エンジニアが解説【初心者向け】

初心者向けにPythonのリストの内包表記について現役エンジニアが解説しています。内包表記とはリストを生成する方法の1つで、効率的な記述方法になります。条件を指定してリストを作成することが出来ます。Pythonの内包表記の書き方や使い方について解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonのリストの内包表記について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのリストの内包表記について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

  1. 内包表記とは
  2. 内包表記の使い方
  3. 実際に書いてみよう
  4. まとめ

 

内包表記とは

内包表記とはリストを生成する方法の1つです。一見分かりづらいのですが、 Pythonの特徴を生かした効率的な記述方法として多く利用されています。

[PR] Pythonで挫折しない学習方法を動画で公開中

内包表記の使い方

内包表記の書き方は以下の通りです。

[式 for 変数 in シーケンスなど]

「シーケンスなど」の部分にはリストやタプル、列挙可能なオブジェクトが入ります。これらのことを総称してiterable(イテラブル)と呼びます。内包表記には条件も記述できます。

[式 for 変数 in シーケンスなど if 条件]

条件を記述した場合には、条件を満たした変数のみでリストが生成されます。リスト内包表記について、詳しくは公式サイトも参考にしてください。

Python docs – リスト内包表記

実際に書いてみよう

今回のサンプルプログラムでは、リスト内包表記の使い方について確認します。まずはリスト内包表記を使わずに、1から10の整数を要素にもつリストを作成してみましょう。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list1)

実行結果は以下のとおりです。

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

連続した整数のリストを作成するにはrange()関数も多く使用されます。

list2 = list(range(1, 11))
print(list2)

実行結果は上記と同様です。

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

次に、同じことをリスト内包表記を使って行ってみましょう。

list3 = [i for i in range(1, 11)]
print(list3)

こちらも実行結果は上記と同様です。

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

これだけだと、リスト内包表記のありがたみが分かりづらいと思います。そこで1から10までの整数の2乗のリストを作成してみましょう。

list3 = [i**2 for i in range(1, 11)]
print(list3)

実行結果は以下のとおりです。このように式の部分を変えるだけで様々なリストを生成することができます。

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

最後にif条件を使用して、1から20までの整数で2または3の倍数の値のリストを作成してみましょう。

list4 = [i for i in range(1, 21) if i % 2 == 0 or i % 3 == 0]
print(list4)

実行結果は以下のとおりです。if条件を組み合わせることで、より複雑なリストを生成することができました。

[2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20]

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

今回の記事ではPythonのリストの内包表記について

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア。

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する