【Python List】内包表記とは?書き方を実例付で徹底解説

Python

(最終更新月:2021年12月)

「リストの中身をスッキリ書き換えたい!」

「内包表記の書き方を教えて!」

というPython初学者の方へ向けた記事となります

当記事を通じて、

  • リストをスッキリ書き換える内包表記

について解説します

主に下記のような場面で使えます

  • 既存のリストが存在し、
  • リスト内の要素に変更を加えて、
  • 新たなリストを作成したい!

Pythonでホームページが作れるのをご存知でしょうか?

当ブログでは、PythonをベースとしたDjangoフレームワークを使って一からホームページを作成、公開するまでを解説しているブログになります

最終的には、下記リンク先のような日報アプリを開発、公開できるように進めていきます

https://nippo.itc-app.site/
ようこそ!簡易日報アプリ「D-Repo」へ!こちらは無料で使える日報アプリのデモサイトになります!「Webアプリはとてもカンタンで便利!」を感じてみよう!

興味のある方はシリーズの記事が一覧となっている↓のページをご覧ください

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!

内包表記とは何か?

内包表記を使うことで、既存のリストから新しいリストを作ることができます

それも、for loopやifの要素を組み込み、1行のコードで完成することができます

百聞は一見に如かず

下記のリストを内包表記で色々と書き換えてみよう!

numbers = [1,2,3,4,5]

1~5までの整数が並んだリストになります

【実例①】要素を全て2乗してリスト化

【内包表記】

new_list = [num**2 for num in numbers]

を使うと、

[1,4,9,16,25]

全て2乗された新たなリストが作られます

内包表記でなく、forループを使うと、

new_list = []
for num in numbers:
    new_list.append(num**2)

どうしても3行くらいにはなってしまいます

【実例②】偶数だけを取り出す(条件分岐の使用)

【内包表記】

new_list = [num for num in numbers if num%2==0]

結果は、

[2,4]

forループ、if文を使っても同様の結果ですが、

new_list = []
for num in numbers:
    if num%2 == 0:
        new_list.append(num)

今度は4行と長くなってしまいます

次章で書き方をご紹介します

書き方

内包表記の構成はこちら↓

新しいリスト名 = [取り出す要素の処理 for 取り出す要素名 in 既存のリスト]

if文を使う場合は新しいリストの末尾に

... = [.... in 既存のリスト if 条件を記述]

と記述します

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました