はじめに
Pythonのビルトイン関数は、初心者から上級者まで幅広く使われています。
例えば print や len は誰もが知っていますが、複数のビルトイン関数を組み合わせると「Pythonらしい書き方」ができることをご存じでしょうか?
この記事では、よく使われるビルトイン関数を組み合わせて 処理を簡潔に、かつ読みやすくする方法 を解説します。
1. map × filter:条件を満たす要素を加工する
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 偶数だけを2乗する
result = list(map(lambda x: x**2, filter(lambda x: x % 2 == 0, numbers)))
print(result) # [4, 16, 36, 64]Python解説
filterで「偶数だけ」に絞り込みmapで「2乗」に変換
このように「絞り込み → 加工」の流れをワンライナーで書けます。
for 文でも同じことは可能ですが、map と filter を組み合わせると「どんな処理をしたいのか」が一目で伝わります。
👉 データ分析や前処理で「特定条件のデータを変換する」場面によく使えます。
2. zip × dict:リストを辞書に変換する
keys = ["name", "age", "country"]
values = ["Alice", 25, "Japan"]
person = dict(zip(keys, values))
print(person) # {'name': 'Alice', 'age': 25, 'country': 'Japan'}
Python解説
zipは「2つのリストをペアにする」関数- その結果を
dictに渡すと辞書が生成できる
このパターンは「列データをキー・値のペアにまとめる」ときに便利です。
例えば、CSVから読み込んだデータやAPIのレスポンス整理に使えます。
👉 for 文で for k, v in zip(keys, values) と回して代入するよりも、1行で辞書にできるので効率的です。
3. sorted × lambda:柔軟なソート処理
students = [
{"name": "Alice", "score": 80},
{"name": "Bob", "score": 92},
{"name": "Charlie", "score": 75}
]
# スコア順にソート
ranked = sorted(students, key=lambda x: x["score"], reverse=True)
print(ranked)
Python解説
sortedはリストを並び替える関数key引数 にlambdaを渡すことで「どの基準で並べ替えるか」を指定可能reverse=Trueで降順に切り替えられる
👉 この方法はランキングや順位付けの処理でよく使われます。
複雑な基準でも lambda を工夫すれば簡単に対応できます。
4. all × any:一括条件チェック
marks = [70, 82, 90, 65]
print(all(m >= 60 for m in marks)) # True (全員合格)
print(any(m >= 90 for m in marks)) # True (90点以上がいる)
Python解説
all→ すべての要素が条件を満たしているか?any→ 1つでも条件を満たす要素があるか?
ループを使わなくても「リスト全体の評価」が可能になります。
複数条件を一度に評価したいときに非常に便利です。
👉 例えば「全員が閾値を超えているか」「1人でも合格者がいるか」といった判定でよく使われます。
まとめ
本記事で紹介した応用テクニックは以下の通りです:
map×filter: データの加工と条件抽出をまとめて表現できるzip×dict: 複数リストをまとめて辞書化できるsorted×lambda: 複雑な並び替えもシンプルに書けるall/any: 集合的な条件判定を一行で書ける
次のステップ
さらに発展させるには、リスト内包表記やジェネレータ式を組み合わせると「よりPythonicな」書き方が可能です。
例えば map + filter を内包表記にすると、読みやすさを優先できます。
# 偶数だけ2乗(内包表記版)
result = [x**2 for x in numbers if x % 2 == 0]
Pythonどちらを使うかは「可読性」と「処理の意図が伝わりやすいか」で選ぶのが良いでしょう。
関連記事:

コメント