python六十课——高阶函数之map
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python六十课——高阶函数之map,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1913字,纯文字阅读大概需要3分钟。
内容图文
1.高阶函数:
特点:函数的形参位置必须接受一个函数对象
分类学习:
1).map(fn,lsd1,[lsd2...]):
参数一:fn --> 函数对象
参数二:lsd1 --> 序列对象(字符串、列表、range...)
功能:
将fn函数作用于lsd1中的每一个元素上,
将每次执行的结果存入到一个map对象中返回;
【注意】得到的这个map对象是一个迭代器对象
需求:lt = [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘] --> [1,2,3,4,5]
map(int,lt):执行过程如下:
1).lt --> 取出第一个元素:‘1‘当做实际参数传递给int函数的形参位置 --> int(‘1‘)
将转换以后的结果:1保留到map对象的第一个元素位置
2).lt --> 取出第二个元素:‘2‘当做实际参数传递给int函数的形参位置 --> int(‘2‘)
将转换以后的结果:2保留到map对象的第二个元素位置
以此类推...
直到map函数执行完了,整个map对象才真正成型了...
高阶函数之:
map(fn,lsd1,[lsd2,...])
参数一:fn --> 函数对象
参数二:lsd1 --> 序列对象(字符串、列表、range...)
功能:
将fn函数作用于lsd1中的每一个元素上,
将每次执行的结果存入到一个map对象中返回;
【注意】得到的这个map对象是一个迭代器对象
import collections # 需求:lt = [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘] --> [1,2,3,4,5] lt = [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘] #代码实现一:使用老技术来实现 lt1 = [] for i in lt: num=int(i) lt1.append(num) #由于列表对象是非惰性序列,可以直接打印看到内容 # print(lt1)#代码实现二:使用新技术解决 #步骤一:定义一个函数功能:将str数据-->int数据def chr2Int(chr): # return {‘0‘:0,‘1‘:1,‘2‘:2,‘3‘:3,‘4‘:4,‘5‘:5,‘6‘:6,‘7‘:7,‘8‘:8,‘9‘:9}[chr]return int(chr) mo=map(chr2Int,lt) ‘‘‘ map类型的对象在打印过程中不能直接看到其中的元素值, 所以map对象是一个惰性序列对象 ‘‘‘print(mo,type(mo)) print(isinstance(mo,collections.Iterator)) print(next(mo)) print(next(mo)) ‘‘‘ 将map对象(惰性的)转换为list对象(非惰性的) ‘‘‘print(list(mo)) #代码实现三:终极版(一步到位)print(list(map(chr2Int,lt))) print(list(map(int,lt)))
代码:
map(int,lt):执行过程如下:
1).lt --> 取出第一个元素:‘1‘当做实际参数传递给int函数的形参位置 --> int(‘1‘)
将转换以后的结果:1保留到map对象的第一个元素位置
2).lt --> 取出第二个元素:‘2‘当做实际参数传递给int函数的形参位置 --> int(‘2‘)
将转换以后的结果:2保留到map对象的第二个元素位置
以此类推...
直到map函数执行完了,整个map对象才真正成型了...
# 需求1:lt = [1,2,3,4,5] --> 效果:[‘1‘,‘2‘,‘3‘,‘4‘,‘5‘] # 需求2:lt = [1,2,3,4,5] --> 效果:[1,4,9,16,25] lt=[1,2,3,4,5] #自定义函数:将int-->strdef int2Str(i): return str(i) print(list(map(int2Str,lt))) print(list(map(str,lt))) print(list(map(lambda x:str(x),lt))) #自定义函数:实现开方操作def kaifang(num): return num**2 print(list(map(kaifang,lt))) print(list(map(lambda x:x**2,lt)))
原文:https://www.cnblogs.com/hankleo/p/10503956.html
内容总结
以上是互联网集市为您收集整理的python六十课——高阶函数之map全部内容,希望文章能够帮你解决python六十课——高阶函数之map所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。