Pythonでfor文を内包表記でif文も併用する方法

Pythonの内包表記を使用してforループとif文を併用するには、内包表記内に条件式を含めることができます。内包表記の一般的な構文は以下の通りです:

csharp
[expression for item in iterable if condition]
  • expression: 各要素に対して適用される式です。
  • item: イテラブルから取り出される各要素を指します。
  • iterable: データを取得するためのイテラブルオブジェクト(例: リスト、タプル、文字列など)です。
  • condition (オプション): 条件式を指定し、条件が真(True)の要素のみが新しいリストに含まれます。

以下はいくつかの例です:

  1. 偶数のみを取得するリスト内包表記:
python
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = [x for x in numbers if x % 2 == 0]
  1. 文字列の長さが3未満の単語を取得するリスト内包表記:
python
words = ["apple", "banana", "cherry", "dog", "elephant"] short_words = [word for word in words if len(word) < 3]
  1. 辞書内の特定の条件を持つ要素を取得する辞書内包表記:
python
data = { "Alice": 25, "Bob": 30, "Charlie": 28, "David": 35 } young_ones = {name: age for name, age in data.items() if age < 30}

条件を含む内包表記を使用することで、リストや辞書などのイテラブルから条件に一致する要素をフィルタリングすることができます。このようにして、コードを簡潔にし、必要なデータのみを効率的に抽出できます。