月ノ書

Pythonのリスト内包表記・map・filterをわかりやすく解説|効率的なデータ操作

この記事でわかること
  • リスト内包表記とは何か
  • for文との違いとメリット
  • map関数でリストの要素を変換する方法
  • filter関数で条件に合う要素だけ抽出する方法
  • よくあるつまずきポイントと考え方

リスト内包表記とは

リスト内包表記とは、リストを作るときにfor文を1行で書く方法です

たとえば、0から4までの数字を2倍にしたリストを作る場合

通常のfor文

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

リスト内包表記

numbers = [i * 2 for i in range(5)]
print(numbers)  # [0, 2, 4, 6, 8]

1行で書けるので、コードがすっきりします

条件付きのリスト内包表記

条件を加えることもできます

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

偶数だけを抽出したリストが簡単に作れます

map関数

map関数は、リストのすべての要素に同じ処理を適用して、新しいリストを作る関数です

numbers = [1, 2, 3, 4, 5]
result = list(map(lambda x: x * 2, numbers))
print(result)  # [2, 4, 6, 8, 10]

リスト内包表記でも同じことができますが、mapは関数を組み合わせやすいのが特徴です

filter関数

filter関数は、条件に合う要素だけを抽出する関数です

numbers = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x % 2 == 0, numbers))
print(result)  # [2, 4]

filterもlist()でリストに変換するのを忘れずに

for文との比較

使い分けると効率的です

注意点

まとめ

これを理解すれば、Pythonでのリスト操作が格段に効率化できます

学習進捗