<< home

Pythonのリスト内包表記

リスト内包表記(List Comprehension)は、リストを簡潔に作成するためのPythonの便利な記法です。通常のループを使わず、シンプルにリストを生成できます。


1. 基本的なリスト内包表記

一般的なリストの作成方法と比較してみましょう。

通常のリスト作成(for文)

numbers = [] for i in range(5): numbers.append(i ** 2) print(numbers) # [0, 1, 4, 9, 16]

リスト内包表記を使った場合

numbers = [i ** 2 for i in range(5)] print(numbers) # [0, 1, 4, 9, 16]

リスト内包表記を使うことで、コードが簡潔になります。


2. 条件を使ったリスト内包表記

リスト内包表記ではifを組み込むこともできます。

偶数のみを取得

even_numbers = [i for i in range(10) if i % 2 == 0] print(even_numbers) # [0, 2, 4, 6, 8]

リスト内包表記で条件分岐(if-else)

labels = ["偶数" if i % 2 == 0 else "奇数" for i in range(5)] print(labels) # ['偶数', '奇数', '偶数', '奇数', '偶数']

3. ネスト(入れ子)したリスト内包表記

リスト内包表記は二重ループにも対応しています。

九九の表を作成

table = [[i * j for j in range(1, 10)] for i in range(1, 10)] print(table)

これは次のような二重ループと同じ意味になります。

table = [] for i in range(1, 10): row = [] for j in range(1, 10): row.append(i * j) table.append(row)

4. 辞書内包表記と集合内包表記

リスト以外にも辞書や集合を内包表記で簡潔に作成できます。

辞書内包表記

squares_dict = {i: i ** 2 for i in range(5)} print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

集合内包表記

unique_numbers = {i % 3 for i in range(10)} print(unique_numbers) # {0, 1, 2}

5. まとめ

リスト内包表記を活用すると、コードの可読性を維持しながら、より簡潔で効率的なプログラムを作ることができます!


<< home