🔖

Pythonリスト内包表記の説明

に公開

Pythonリスト内包表記の説明

リスト内包表記とは?

リスト内包表記(List Comprehension)は、リストを簡潔に生成するためのPythonの構文です。通常のループや関数を使ってリストを作成する代わりに、1行で表現することができます。

基本構文

[for 要素 in イテラブル]

例: 1~5のリストを生成

numbers = [x for x in range(1, 6)]
print(numbers)  # [1, 2, 3, 4, 5]

条件付きリスト内包表記

リスト内包表記に条件を追加して、特定の条件を満たす要素だけを含むリストを作成できます。

構文

[for 要素 in イテラブル if 条件]

例: 偶数のみを含むリスト

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

ネストしたリスト内包表記

リスト内包表記は、ネストしたループでも使えます。

例: 2次元リストの生成

matrix = [[x * y for x in range(1, 4)] for y in range(1, 4)]
print(matrix)  # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]

リスト内包表記 vs 通常のループ

リスト内包表記を使うことで、コードを簡潔に書けますが、可読性が損なわれる場合があります。以下は、通常のループとリスト内包表記の比較です。

通常のループ

squares = []
for x in range(1, 6):
    squares.append(x ** 2)
print(squares)  # [1, 4, 9, 16

リスト内包表記

squares = [x ** 2 for x in range(1, 6)]
print(squares)  # [1, 4, 9, 16, 25]

Discussion