Python リストで内包表記を使用する

Pythonのリスト、ディクショナリ、セットで内包表記を使用するサンプルです。
(確認環境:Python 3)

目次

サンプル 内包表記とは
  リストの内包表記を使用する
  ディクショナリの内包表記を使用する
  セットの内包表記を使用する

内包表記とは

  • リストなどに対してfor in文を使用してシンプルにアクセスする方法です。
    →1行にまとまります。
  • if文で抽出する条件を設定できます。
  • 抽出された値に対して計算や文字連結などの加工ができます。
  • 以下はpython公式ドキュメントの5.1.3. リストの内包表記のリンクです。
    https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions

リストの内包表記を使用する

[式 for 変数 in 要素を順番に持つオブジェクト (if 条件式)]

リストの内包表記を使用するサンプルです。

# coding: utf-8

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

b = [num * 2 for num in a]

print (b) #[2, 4, 6, 8, 10]


d = [num * 2 for num in a if num > 3]

print (d) #[8, 10]

3行目は、リストです。
5行目は、リストの内包表記です。最初にfor num in aでリストの値を取り出します。その後にnum*2します。
7行目は、3行目の値を2倍した値が表示されます。
10行目もリストの内包表記です。最初にfor num in aでリストの値を取り出します。
その後にif num >3 の条件で、3行目のリストの3より大きい、4と5のみが対象になります。
その数値に対してnum*2します。
12行目は、4と5を2倍した値が表示されます。

ディクショナリで内包表記を使用する

{キー:値 for 変数 in 要素を順番に持つオブジェクト (if 条件式)}

ディクショナリで内包表記を使用する

# coding: utf-8

a = {i:i*3 for i in (1,2,3)}

print (a) # {1: 3, 2: 6, 3: 9}

print (type(a)) # <class 'dict'>

3行目は、ディクショナリの内包表記です。最初にfor in文が実行され、その後にiとi*3で値がセットされます。
7行目は、type関数でディクショナリであることを表示しています。

セットで内包表記を使用する

{式 for 変数 in 要素を順番に持つオブジェクト (if 条件式)}

セットで内包表記を使用する

# coding: utf-8

a = {1,2,3,4,5}

b = {i*3 for i in a if(i>3)}

print (b) # {12, 15}

print (type(b)) # <class 'set'>

3行目は、セットです。
5行目は、for in文でセットの値を取得し、次にif文のi>3で対象の値に対して先頭のi*3で3倍にします。
7行目は、上記条件にあった4と5の3倍の値が表示されます。
9行目は、type関数でセットであることを表示しています。

関連の記事

Python リストの仕組みと使い方のサンプル(list)
Python タプルの仕組みと使い方のサンプル(tuple)
Python ディクショナリの仕組みと使い方(dictionary)
Python セットの仕組みと使い方のサンプル(set)

△上に戻る