【每天几分钟,从零入门python编程的世界!】
今天我们学习另一个比较常用的内置函数map()。
●描述
map()会根据提供的函数对指定迭代器做映射。
它有两个参数,第一个参数是一个函数,第二个参数是一个迭代器。
它是把第二个参数中的每一个元素依次传入第一个参数中进行处理,然后将处理后的结果依次放入一个新的迭代器并返回这个迭代器。
●语法
map(function,iterable,...)
即map(函数,迭代器...)
●参数
function:函数
iterable:一个或多个迭代器
●返回值
Python2返回列表
Python3返回迭代器,我们现在学的是Python3,以Python3为准。
实例1:
#定义map()函数的第一个参数
def square(x):
return x**2
new_list1=list(map(square,[1,2,3,4,5]))
#使用lambda表达式定义匿名函数
new_list2=list(map(lambda x:x**2,[1,2,3,4,5]))
print(new_list1)
print(new_list2)
#运行结果:
[1,2,9,16,25]
[1,2,9,16,25]
实例2:
#map()函数第一个参数后有2个迭代器
new_list3=list(map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10]))
print(new_list3)
#运行结果:
[3,7,11,15,19]
实例3:
假设有一张清单,上面有3个不同地区的人群的信贷信用分,每一个地区的人群信用分组成一个列表,计算每一个地区人群的平均信用分并形成新的列表。
score_cards=[[1,2,3,4,5],
[3,4,5,6,7],
[5,6,7,8,9]]
#以上代码换行是没问题的
def mean(score_list):
return sum(score_list)/len(score_list)
#overage_score=list(map(mean,score_cards))
#使用lambda函数
overage_score=list(lambda x:sum(x)/len(x),score_cards)
print(overage_score)
#运行结果:
[3,5,7]
tips:我们知道lambda表达式也叫lambda函数,那么就可以用lambda函数来作为map的第一个参数。
我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!