【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()
を覚えると、コードが短く・きれいになります。
コメントを送信