【Python】map関数の基本の使い方と具体的なコード例

Pythonの標準関数の中でも、シンプルなのに強力な機能を持つのが map()
一見とっつきにくそうに見えますが、使い方を理解すれば、forループよりもコンパクトかつ効率的に処理できます。

今回は map() の基本的な使い方から、実際の動きを例を通してわかりやすく解説します。


map関数ってなに?

map(関数, リストなどのデータ)
リストの中の1つ1つに、同じ関数を順番に適用してくれる仕組みです。


例①:動物の名前を全部大文字に変える

animals = ['dog', 'cat', 'rabbit']
result = map(str.upper, animals)

print(list(result))  # → ['DOG', 'CAT', 'RABBIT']

何が起きているの?

  • str.upper は「文字を大文字にする関数」
  • map(str.upper, animals) は、
    • str.upper('dog')'DOG'
    • str.upper('cat')'CAT'
    • str.upper('rabbit')'RABBIT'
  • この結果を順番にまとめてくれる

例②:動物の名前の文字数を数える

animals = ['lion', 'tiger', 'elephant']
result = map(len, animals)

print(list(result))  # → [4, 5, 8]

この例では len という「文字数を数える関数」を使っています。

  • 'lion' → 4文字
  • 'tiger' → 5文字
  • 'elephant' → 8文字

それをmap()が自動で全部やってくれるという感じです


例③:動物に「さん」づけをする(lambda関数)

animals = ['dog', 'cat', 'penguin']
result = map(lambda x: x + 'さん', animals)

print(list(result))  # → ['dogさん', 'catさん', 'penguinさん']

ここでは lambda という「その場で作る関数」を使っています。

  • lambda x: x + 'さん' は、
    • 'dog''dogさん'
    • 'cat''catさん'
  • これをmap()で一気に!

🔸「リストの全員に何かをつけたい」とき、めちゃくちゃ便利!


例④:2つのリストを使って、動物と足の数を合わせる

animals = ['ant', 'spider', 'octopus']
legs = [6, 8, 8]

result = map(lambda a, l: f'{a} has {l} legs', animals, legs)

print(list(result))
# → ['ant has 6 legs', 'spider has 8 legs', 'octopus has 8 legs']

ここではリストが2つあります。

  • animals = [‘ant’, ‘spider’, ‘octopus’]
  • legs = [6, 8, 8]

同じ順番でペアを作って、"{名前} has {足の数} legs" にしてくれる


注意ポイント:map()の戻り値はイテレータ

result = map(str.upper, ['dog', 'cat'])
print(result)
# → <map object at 0x...>

これだけだと中身は見えません。
なので、list()で包んで使うのが定番です

print(list(result))  # → ['DOG', 'CAT']

まとめ

項目説明
map()とはリストの中のすべての要素に関数を適用するしくみ
よく使う関数str.upper, len, lambdaなど
戻り値イテレータ(リストとして使うにはlist()で変換)
便利な場面一括変換・データ前処理・for文の代用など

map()を覚えると、コードが短く・きれいになります。

コメントを送信

You May Have Missed