プログラミングを頑張る土木系専攻大学院生のブログ

主にプログラミングについて開発備忘録的な形で投稿しています。

Pythonの map 関数とは?使い方と活用事例をやさしく解説 !!

Pythonmap 関数とは?使い方と活用事例をやさしく解説 🐍✨

Pythonを使っているとよく登場する組み込み関数のひとつに map() があります。シンプルなのにとても強力なこの関数、うまく使えばコードをすっきり書けたり、処理を効率化できたりします!

この記事では、map 関数の基本から応用、活用例までを丁寧に紹介します 💡


🔧 map 関数の基本構文

map(function, iterable)
  • function:各要素に適用する関数(例:intstrlambda関数など)

  • iterable:繰り返し処理ができるオブジェクト(例:リスト、タプル、文字列など)

map 関数は、指定した関数をイテラブルの各要素に順番に適用して、その結果をイテレータとして返します。


🧪 基本例:文字列を整数に変換する

numbers = ["1", "2", "3"]
int_numbers = map(int, numbers)
print(list(int_numbers))  # 出力: [1, 2, 3]

この例では、int 関数をリストの各要素に適用し、文字列を整数に変換しています。

 

🔍 ポイント
map は「for 文 + append」を使った処理を一行で簡潔に書ける便利なツールです。


📝 コード解説:b, c = map(int, b_c_text.split())

たとえば、次のようなコードがあったとします。

b_c_text = "10 20"
b, c = map(int, b_c_text.split())
  • b_c_text.split():空白で文字列を分割 → ["10", "20"]

  • map(int, ...):各要素に int を適用 → [10, 20]

  • b, c = ...:それぞれの値を bc に代入

このように、ユーザーの入力を一瞬で処理できるのが map の魅力です!


🎮 応用例①:複数の値を一括で取得

# 入力例: "5 10 15"
a, b, c = map(int, input("Enter three numbers: ").split())
print(a, b, c)

このコードでは、3つの整数をスペース区切りで一度に入力し、すぐに整数として使える形に変換しています。

活用シーン
競技プログラミングAtCoderなどの問題で、標準入力から複数の数値を読み取るときによく使われます。


🧠 応用例②:無名関数(lambda)との組み合わせ

maplambda 関数と組み合わせると、柔軟な処理が可能になります。

# 各要素を2倍にする
nums = [1, 2, 3, 4]
doubled = map(lambda x: x * 2, nums)
print(list(doubled))  # [2, 4, 6, 8]

このように、ちょっとした処理を1行で書けるのが便利です!


💡 活用事例:複数のリストを同時に処理

Pythonには zip() 関数と map() を組み合わせる方法もあります。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
sums = map(lambda x: x[0] + x[1], zip(list1, list2))
print(list(sums))  # [5, 7, 9]

zip() によってリストをペアにし、それぞれの要素を足し合わせる処理を map で実現しています。

📌 補足
この処理は for 文でも書けますが、map + lambda を使うとコードが短く読みやすくなります。


🚨 注意点:map の返り値はイテレータ

result = map(int, ["1", "2", "3"])
print(result)  # <map object at 0x...>

map の結果はリストではなく イテレータ です。そのままでは中身が見えないので、リストやタプルに変換して使うのが一般的です。

print(list(result))  # [1, 2, 3]

一度 list() に変換すると、要素はすべて「消費」されてしまう点にも注意!


🎯 まとめ

  • map 関数は、イテラブルの各要素に関数を適用するための便利なツール。

  • 入力処理やデータ変換を簡潔に書ける。

  • lambdazip と組み合わせることで、より柔軟な使い方が可能。

  • 結果はイテレータなので、リストに変換して使おう!


🧩 おすすめの練習問題

map を使った入力処理やデータ変換は、初心者の壁を越えるポイントのひとつです。以下のような問題で実際に手を動かしてみましょう!

  • リスト内のすべての文字列を大文字に変換

  • 数字のリストから、奇数だけ2倍にして表示

  • 入力された複数の小数を四捨五入して整数に変換


📚 参考リンク