简单实现map函数,其精髓在于:并行迭代
def my_map(fun,*iterations):
for items in zip(*iterations):
yield fun(*items)
案例如下
>>> def power2(x):
return x*x
>>> a = [1,2,3,4,5]
>>> my_map(power2,a)
<generator object my_map at 0x03301EB0>
>>> list(my_map(power2,a))
[1, 4, 9, 16, 25]
>>> def my_add(x,y):
return x+y
>>> b=[1,2,3,4]
>>> c=[1,2,3,4]
>>> my_map(my_add,b,c)
<generator object my_map at 0x03301EB0>
>>> list(my_map(my_add,b,c))
[2, 4, 6, 8]