From the Southern Hemisphere

From the Southern Hemisphere

南半球に移住したプログラマの日々

【Python】リスト内包表記(list comprehension)

こんにちは、ピコピコくんです。
今回はリスト内包表記について書きました。

リスト内包表記

Pythonで新しいリストを作成するときに便利なのがリスト内包表記(list comprehension)です。

書式

[ 式 for 任意の変数名 in イテラブルオブジェクト ]

イテラブルオブジェクトとは、文字列やリストなどの要素を順番に取り出すことのできるオブジェクトのことを言います。

サンプルコード 1

new_list = [ x for x in range(10) ]
print(new_list)
#実行結果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

これは下記のコードと同等の処理になります。

new_list = []
for v in range(10):
    new_list.append(v)
print(new_list)
#実行結果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

サンプルコード 2

リスト内包表記の中で if 文を使うことができます。下記コードでは「xを2で除算した余りが0」の場合にxに値を設定しています。range(10)で0から9までの数字が x に当てはめられ、そのうち条件にあう0, 2, 4, 6, 8の値を持つリストがnew_listに代入されています。

new_list = [ x for x in range(10) if x %2 == 0]
print(n_list)

# 実行結果
[0, 2, 4, 6, 8]

サンプルコード 3

リスト内包表記では三項演算子を使って下記のような書き方もできます。このコードでは、value × 2 の結果が 10 以上の場合は value を2倍した値をリストに追加し、10未満の場合は 0 をリストに追加して最後にリストの内容を画面に表示しています。

new_list = [ value *2 if 10 <= value * 2 else 0 for value in range(10)]
print(new_list)

# 実行結果
[0, 0, 0, 0, 0, 10, 12, 14, 16, 18]

参考資料

リスト内包表記について詳しく知りたい方はPythonの公式ドキュメントをどうぞ
docs.python.org

読者さん募集中

当サイトの記事を気に入っていただけたら読者登録お願いします。
下記「読者になる」ボタンを押すと読者登録できます。