在lambda章节中我们有讲到map函数。
map()内置函数将给定函数应用于可迭代的每一项,并返回一个迭代器对象。

简单示例

nums = [1, 2, 3, 4, 5, 6]

def func(x):
    return x+x

nums = list(map(func,nums))
print(nums)
# [2, 4, 6, 8, 10, 12]

此处你用for循环也可以,将每个值单独的迭代取值出来。

等效写法

通俗点,自制map函数

nums = [1, 2, 3, 4, 5, 6]

def func(x):
    return x+x

def mymap(fun,iterable):
    for i in iterable:
        yield fun(i)

nums = list(mymap(func,nums))
print(nums)

仅用于加深理解。函数将的传值我就不在多的叙述了,yield方法,在迭代器中有讲到,后续会单独拉出来讲。

带lambda的映射

这个lambda中也有提起。

nums = [1, 2, 3, 4, 5, 6]
res = map(lambda x: x+x, nums)
print(list(res))

多个可迭代的映射

def func(x, y):
    return x + y

nums = [1, 2, 3, 4, 5, 6]
nums1 = [6, 7, 8, 9, 0, 1]
res = map(func, nums, nums1)
print(list(res))
# [7, 9, 11, 13, 5, 7]

映射多个函数

def func(x):
    return x * x


def add(x):
    return x + x

nums = [1, 2, 3, 4, 5, 6]
for i in nums:
    value = list(map(lambda x: x(i),(add,func)))
    print(value)
"""
[2, 1]
[4, 4]
[6, 9]
[8, 16]
[10, 25]
[12, 36]
"""

此处就不做多的概述了,因为,很多时候不会这么用。