💨

【Python】リスト内包表記とは?

に公開

リスト内包表記の説明

リスト内包表記は、Pythonでリストを簡単に作る特別な書き方です。普通のforループよりも短く書けて便利です。一緒に見ていきましょう!

基本的な例

普通のforループはこう書きます:

# 1から5までの数字を2倍にしたリストを作る
numbers = []
for i in range(1, 6):  # 1, 2, 3, 4, 5
    numbers.append(i * 2)
print(numbers)  # [2, 4, 6, 8, 10]

リスト内包表記を使うとこう書けます:

# 同じことをリスト内包表記で書く
numbers = [i * 2 for i in range(1, 6)]
print(numbers)  # [2, 4, 6, 8, 10]

ステップバイステップで理解する

リスト内包表記は次の形をしています:

[式 for 変数 in イテラブル]

分解して説明すると:

  1. [] で囲まれています(リストを作るため)
  2. for 変数 in イテラブル - 通常のforループのように、繰り返し処理する部分
  3. - 各繰り返しで計算して、リストに入れる値

具体例で見てみよう

例1: 1から10までの数字の中から、偶数だけ選んで2乗するリスト

# 普通のforループ
even_squares = []
for num in range(1, 11):
    if num % 2 == 0:  # 偶数かどうかチェック
        even_squares.append(num ** 2)
print(even_squares)  # [4, 16, 36, 64, 100]

# リスト内包表記
even_squares = [num ** 2 for num in range(1, 11) if num % 2 == 0]
print(even_squares)  # [4, 16, 36, 64, 100]


# ここの if num % 2 == 0 は「numが偶数かどうか」をチェックしています
# num % 2 は「numを2で割った余り」を計算します
# 偶数は2で割り切れるので余りは0になります
# つまり「偶数だけを選ぶ」という条件になっています

このような条件式を入れることで、リスト内包表記では特定の条件に合う要素だけを選んで新しいリストを作ることができます。

例2: 果物の名前に「おいしい」という言葉を付け加える

fruits = ["りんご", "バナナ", "オレンジ"]

# 普通のforループ
tasty_fruits = []
for fruit in fruits:
    tasty_fruits.append("おいしい" + fruit)
print(tasty_fruits)  # ['おいしいりんご', 'おいしいバナナ', 'おいしいオレンジ']

# リスト内包表記
tasty_fruits = ["おいしい" + fruit for fruit in fruits]
print(tasty_fruits)  # ['おいしいりんご', 'おいしいバナナ', 'おいしいオレンジ']

まとめ

リスト内包表記は:

  1. 短く書ける
  2. 読みやすい(慣れると)
  3. 処理速度が少し速い

最初は少し難しく感じるかもしれませんが、使い方を覚えると、Pythonでのプログラミングがとても便利になります!

Discussion