map函数使用的方式为:map(function,param)
其中的function是已定义的函数(如果较为简单的函数,直接用lambda匿名函数定义即可)
param一定是一个序列,序列中的元素依次作为function中的入参;
所以map函数最后得到的结果一定是一个序列。
但是注意,Python2.x中直接用map函数,返回的直接就是对应的序列;而Python3.x中直接用map函数,返回的却是迭代器(也就是<map object at 0x000002B09C517C08>)
#Python2.x
numbers = (1, 3, 6)
newNumbers = map(lambda x: x+1 , numbers)
print(newNumbers)
返回值为
D:\python\python.exe G:/.../.../.../当前文件.py
(2, 4, 7)
Process finished with exit code 0
Python3.x的返回值却是
D:\python\python.exe G:/.../.../.../当前文件.py
<map object at 0x000001E98658B688>
Process finished with exit code 0
所以在Python3.x中,需要将map的返回值进行格式化使用。
#单参数
numbers = (1, 3, 6)
newNumbers = tuple(map(lambda x: x+1 , numbers))
print(newNumbers)
#多参数
print(list(map(lambda n,m: n*m, (1,2,3),(5,6,7))))
输出为
D:\python\python.exe G:/.../.../.../当前文件.py
(2, 4, 7)
[5, 12, 21]
Process finished with exit code 0