Python の map() 関数
map(function, iterable,...) 関数は Python のビルトイン関数です。何もモジュールをインポートすることなく使うことができます。
map(function, iterable,...) 関数は、 元のコレクション (iterable) のそれぞれの要素を、第一引数の function で処理し、異なるリストを作り出します。
# 受取った m に 5 を足して返す関数
def add_five(m):
return m + 5
L = [1, 2, 3]
R = map(add_five, [1, 2, 3])
print(*R) # 6, 7, 8
print の引数につけたアスタリスク * については「アスタリスク * による List のアンパック」をみてください。
lambda 式を使って同じ内容を書くと、次のようになります。
L = [1, 2, 3]
R = map(lambda i: i + 5, L)
print(*R) # 6, 7, 8
また、コレクション (iterable) は複数指定することができ、第二引数から順番に第一引数で指定した関数 (callable) への引数として渡されます。
L = map(lambda s, t: s + t, ['A', 'B', 'C'], ['x', 'y', 'z'])
print(*L) # Ax By Cz
引数で渡したコレクションの長さが異なる場合には、渡されたコレクションの中で一番短い (要素が少ない) コレクションまで繰り返して、処理を終了します。
L = map(lambda s, t: s + t, ['A', 'B'], ['x', 'y', 'z'])
print(*L) # Ax By