Pythonの内包表記について

更新日 : 2024/2/13

最近Pythonについて勉強していて、リスト内容表記が便利だったので備忘としてまとめます。

目次

    基本形

    リスト内包型表記の基本形は以下です。
    1new_list = [new_item for item in list]
    一言で簡単に説明すると、
    「listの1つ1つの要素をitemとして取り出し、新要素new_itemとしてnew_listに追加する。」
    という感じです。
    例としては、リスト内包表記を使わず以下のように書いていたプログラムを
    1list = [1, 2, 3]
    2new_list = []
    3for item in list:
    4    new_item *= 2
    5    new_list.append(new_item)
    6    # new_list = [2, 4, 6]
    以下のように簡潔に書くことができます。
    1list = [1, 2, 3]
    2new_list = [item * 2 for item in list]
    3# new_list = [2, 4, 6]
    ちなみにリストだけでなく文字列でも使うことができ、
    文字列の場合は先頭から1文字1文字取り出して処理することができます。

    ifとの組み合わせ

    リスト内包表記はifと組み合わせることができます。
    ifと組み合わせることで、元となるリストから取得する要素をフィルタできます。
    書き方は以下です。
    1new_list = [new_item for item in list if condition]
    例として、リスト内包表記を使わず以下のように書いていたプログラムを
    1list = [1, 2, 3, 4]
    2new_list = []
    3for item in list:
    4    if item % 2 == 0:
    5        new_item *= 2
    6        new_list.append(new_item)
    7        # new_list = [4, 8]
    以下のように書くことができます。
    1list = [1, 2, 3, 4]
    2new_list = [item * 2 for item in list if item % 2 == 0]
    3# new_list = [4, 8]

    最後に

    一旦以上ですが、 if elseのあわせ技や、
    タプルで使えたりもするようなので それら今後追記したいと思ったことがあれば追記します。

    それでは!