Pythonのmap関数は、リストの各要素に関数の処理を適応させることができます。 無名関数を定義するlambda(ラムダ式)と合わせてよく利用されます。
Pythonのmap関数の使い方
第一引数に適応したい関数(処理内容)、第二引数にiterableな要素(リストやタプルなど)を指定します。
map(function, iterable, ...)
例えば、整数が格納されたリストの全ての要素に同じ処理を適応させる場合は下記のように記述します。 下記の例では、リスト内の全ての整数に2で割った余りを返す処理を適応させています。
# codig: utf-8 def mod2(n): return n%2 print(list(map(mod2, [1, 2, 3, 4, 5]))) # => [1, 0, 1, 0, 1]
mapの結果は全てイテレータで返されます。必要な場合はlist()
やtuple()
の関数で変換します。
lambda式を組み合わせた使い方
Pythonのlambda(無名関数)を組み合わせて、mapの引数に処理を直接定義することができます。 先ほどと同じ処理をlambdaを組み合わせて書くとよりシンプルなコードになります。
# codig: utf-8 print(list(map(lambda x: x%2, [1, 2, 3, 4, 5]))) # => [1, 0, 1, 0, 1]
実行環境
Python 3.7.0