【Python】map関数の基本の使い方と具体的なコード例
Pythonの標準関数の中でも、シンプルなのに強力な機能を持つのが map()。
一見とっつきにくそうに見えますが、使い方を理解すれば、forループよりもコンパクトかつ効率的に処理できます。
今回は map() の基本的な使い方から、実際の動きを例を通してわかりやすく解説します。
Contents
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()を覚えると、コードが短く・きれいになります。


コメントを送信