map()函数会根据提供的对指定的可迭代对象的每个元素进行运算,并将返回运算结果的迭代器。
先去将几个例子,这样比较通俗易懂。
eg 1:输入数据型
a=map(int,input().split())
输入:12 13
结果为:
分析:map(int,input().split()) 将输入的值(input.split()的东西也叫做可迭代对象)通过空格分开,int函数将其转化为整型数据,map()函数将输入的多个数据的结果生成一个迭代器a,迭代器顾名思义就是可迭代的对象经过对应的函数处理之后得到的结果封装在a里面。迭代器的结果可以通过list(a)打印出来:
a=map(int,input().split())
list(a)
[12, 13]
也可以通过元组tuple()函数打印出结果:
a=map(int,input().split())
set(a)
{12, 13}
迭代器的结果 list(a),tuple(a),set(a),如果不进行保存,那么再次使用 list(a),tuple(a),set(a)的时候,他们的值会为空(就相当于一个容器a,将里面的液体到倒出来了,再次想倒出来些就没有了)。如果想要将这些结果保存起来,可以分别这些值赋值给一个变量,那么再次使用的时候,可以用的时候就可以调用到(就相当于将倒出来的液体存在另外一个地方,用的时候可以拿出来)。
eg 2:数据计算型
b=map(ord,"FishC")
list(b)
[70, 105, 115, 104, 67]
上面的b也是一个迭代器,list(b)可以讲结果打印出来,也可以用上面的另外两种,list(b),tuple(b),set(b)(不包括str()函数),
eg 3:传入多个数据型
c=map(pow,[1,2,3],[3,3,3])##分别计算1的三次方,2的三次方,3的三次方
list(c)
[1, 8, 27]
eg 4:传入的是多个数据,但是数据大小不一样。
list(map(max,[1,2,3],[4,3,2],[2,5,3],[5,6,2,6])) #6就不去进行比较了
[5, 6, 3]