python map 详解
python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
示例一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 有一个 list , L = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ],我们要将f(x) = x^ 2 作用于这个 list 上,那么我们可以使用 map 函数处理。 >>> L = [ 1 , 2 , 3 , 4 ,] >>> def pow2(x): ... return x * x >>> map (pow2,L) [ 1 , 4 , 9 , 16 ] 如果给出了额外的可迭代参数,则对每个可迭代参数中的元素同时的应用‘function’。 >>> def mknum(a,b,c): ... return a * 10000 + b * 100 + c ... >>> l1 = [ 10 , 20 , 30 ] >>> l2 = [ 40 , 50 , 60 ] >>> l3 = [ 70 , 80 , 90 ] >>> map (mknum,l1,l2,l3) [ 104070 , 205080 , 306090 ] 结果表明, map 函数对每个 list 取相同的下标做了mknum函数处理。 |
示例二:利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’,‘Bart’]。
#!/usr/bin/env python
def chname(name):
n = 0
for a in name:
if n==0:
cname = a.upper()
else:
cname = cname + a.lower()
n = n+1
return cname
print map(chname,['bob','jeAN','jessica'])
示例三:
1 2 3 4 5 6 7 8 9 | >>> def abc(a, b, c): ... return a * 10000 + b * 100 + c ... >>> list1 = [ 11 , 22 , 33 ] >>> list2 = [ 44 , 55 , 66 ] >>> list3 = [ 77 , 88 , 99 ] >>> map (abc,list1,list2,list3) [ 114477 , 225588 , 336699 ] 看到并行的效果了吧!在每个 list 中,取出了下标相同的元素,执行了abc()。 |
示例四:
1 2 3 4 5 6 7 8 | >>> list1 = [ 11 , 22 , 33 ] >>> map ( None ,list1) [ 11 , 22 , 33 ] >>> list1 = [ 11 , 22 , 33 ] >>> list2 = [ 44 , 55 , 66 ] >>> list3 = [ 77 , 88 , 99 ] >>> map ( None ,list1,list2,list3) [( 11 , 44 , 77 ), ( 22 , 55 , 88 ), ( 33 , 66 , 99 )] |
示例五:
1 2 3 4 5 6 7 8 9 | >>> def add100(x): ... return x + 100 ... >>> list1 = [ 11 , 22 , 33 ] >>> map (add100,list1) [ 101 , 102 , 103 ] >>> [add100(i) for i in list1] [ 101 , 102 , 103 ] |
示例六:
1 2 3 4 5 6 7 8 | >>> def abc(a, b, c): ... return a * 10000 + b * 100 + c ... >>> list1 = [ 11 , 22 , 33 ] >>> list2 = [ 44 , 55 , 66 ] >>> list3 = [ 77 , 88 , 99 ] >>> map (abc,list1,list2,list3) [ 114477 , 225588 , 336699 ] |
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术