リスト内包表記(List Comprehension)は、Pythonにおいてリストを簡潔かつ効率的に生成する方法の1つです。リスト内包表記は、forループを使用する場合と比較して、コードの可読性を向上させることができます。

リスト内包表記の基本構文は以下の通りです。

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

この式は、イテラブルオブジェクト内の各要素に対して反復処理を行い、変数にその値を代入します。そして、式が計算され、その結果を含む新しいリストが作成されます。

例えば、1から5までの整数を含むリストを作成する場合、forループを使用する方法は以下のようになります。

numbers = [] for i in range(1, 6): numbers.append(i)

しかし、リスト内包表記を使用すると以下のように簡潔に書くことができます。

numbers = [i for i in range(1, 6)]

また、条件式を追加することで、特定の条件に一致する要素だけを含むリストを作成することもできます。

even_numbers = [i for i in range(1, 11) if i % 2 == 0]

この場合、1から10までの整数のうち、2、4、6、8、10だけを含むリストが作成されます。

リスト内包表記は、単純なリストの生成に限定されるわけではありません。Pythonのリスト内包表記は、組み合わせ、フィルタリング、集約など、リストに対するさまざまな操作に使用できます。

例えば、以下のようなリストを考えてみましょう。

fruits = ['apple', 'banana', 'cherry']

このリストを使って、各要素の文字数を含む新しいリストを作成するには、次のように書くことができます。

fruit_lengths = [len(fruit) for fruit in fruits]

最終的な出力は、[5, 6, 6]となります。

リスト内包表記は、簡潔で読みやすいコードを書くことができ、Pythonの魅力的な機能の1つです。しかし、過剰に使用するとコードが複雑になり、読みにくくなる可能性があるため、適切な使用方法を選択することが重要です。

リンク

List comprehensions[EN]