TL;DR
map()は、全ての要素に関数を適用する組み込み関数である。リストやタプルなどのイテラブルに対して同じ関数を適用する組み込み関数である。第一引数に関数、第二引数にイテラブルを指定する。
map()のポイント
- イテラブルの中の値全てに、処理を加える
- 中身を表示させるには、list()や for()文を使う
- 第一引数に関数、第二引数にイテラブルを指定する
組み込み関数である map()は、イテラブルの中の値全てに、処理を加えて変更したい場合に使うとよい。
しかし、map()をそのまま使っただけでは、中身は出力されない。以下のように表示される。
x = [1, 2, 3, 4]
map(lambda i: i * 10, x)
# <map at 0x7f27fe00a750>
中身を表示させるには、list()や for()文を使う。
map() と list()
リストに変換させたいときは、list() を使うとよい。
x = [1, 2, 3, 4]
list(map(lambda i: i * 10, x))
# [10, 20, 30, 40]
map() と int
文字列と整数を整数に変換する。
x = ['1', 2, '3', 4]
a = map(int, x)
list(a)
# [1, 2, 3, 4]
map() と 関数
関数を使って 3 の倍数 list を作ってみる。以下は、1 から 10 までを 3 倍したものをリストに格納。
x = list(range(1, 11))
def func(x):
y = x * 3
return y
list(map(func, x))
# [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
map() と for 文
リストの中にある整数を絶対値に変換。
x = [-1, 2, -3, 4]
for i in map(abs, x):
print(i)
# 1
# 2
# 3
# 4
map() と if 文
if 文を使って条件分岐させる。
x = [10, 20, 30, 40, 50, 60, 70, 80, 90]
def func(i):
if i == 70:
return '不合格'
elif i < 70:
return '不合格'
elif i > 70:
return '合格'
for i in map(func, x):
print(i)
# 不合格
# 不合格
# 不合格
# 不合格
# 不合格
# 不合格
# 不合格
# 合格
# 合格