このmap
関数はここで非常に役立ちます。を使用map
すると、イテラブルの各要素に任意の関数を適用できます。
Python 3.x
>>> def my_mul(x,y):
... return x*y
...
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>>
>>> list(map(my_mul,a,b))
[2, 6, 12, 20]
>>>
もちろん:
map(f, iterable)
に相当
[f(x) for x in iterable]
そのため、次の方法でソリューションを取得できます。
>>> [my_mul(x,y) for x, y in zip(a,b)]
[2, 6, 12, 20]
>>>
Python 2.xでのmap()
意味:イテラブルの各要素に関数を適用し、新しいリストを作成します。Python 3.x map
では、リストの代わりにイテレータを作成します。
代わりに、演算子my_mul
を使用できます mul
Python 2.7
>>>from operator import mul # import mul operator
>>>a = [1,2,3,4]
>>>b = [2,3,4,5]
>>>map(mul,a,b)
[2, 6, 12, 20]
>>>
Python 3.5以降
>>> from operator import mul
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>> [*map(mul,a,b)]
[2, 6, 12, 20]
>>>
map()
イテレータを構築する*
ため、リストを取得するために反復可能なアンパッキング演算子を使用していることに注意してください。解凍方法はlist
コンストラクタよりも少し高速です:
>>> list(map(mul,a,b))
[2, 6, 12, 20]
>>>