python中map()函数的作用、参数、返回值详解
map()函数描述
map()函数是python的内置函数之一,可以接收两个参数,返回一个map类型的object对象。其语法结构如下:
map()函数的参数语法结构
该参数的语法结构来源于python部分的源码:
map(func, *iterables) --> map object
map()函数参数解析
- func:map()函数的第一个参数,是一个函数,map()可以将第二个参数可迭代对象中的元素逐个作为参数传递给该函数,注意,是函数名或匿名函数,不加括号的(不是函数调用的语法);
- *iterables:可变的可迭代对象参数,如list列表、str字符串、tuple元素等等;注意:可迭代对象的参数需要根据第一个参数中函数的元素个数来定。
map()函数实例代码
>>> map()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: map() must have at least two arguments. #该TypeError,说明map()函数至少需要两个参数
>>> x = map(lambda x:x*x, [-1,0,1,3,5])
>>> x
<map object at 0x10050>
>>> type(x)
<class 'map'>
>>> list(x)
[1, 0, 1, 9, 25]
>>> def Y(arg):
... return arg*arg
...
>>> y = map(Y, [-3,0,5])
>>> type(y)
<class 'map'>
>>> list(y)
[9, 0, 25]
>>> def Z(arg1,arg2):
... return arg1*arg2
...
>>> z = map(Z,[-1,1],[-5,6])
>>> type(z)
<class 'map'>
>>> list(z)
[5, 6]
>>> y1 = map(Y,[-3,3],[-3,3])
>>> type(y1)
<class 'map'>
>>> list(y1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Y() takes 1 positional argument but 2 were given
map()函数实例代码解析
如上代码,map()第二个参数可迭代对象的个数一般需要根据第一个参数的函数中的参数个数来定,如Y函数和Z函数,前者只有一个参数,后者有两个,当传递两个可迭代对象iterable给这两个函数时,只有一个参数的Y函数抛出TypeError。