python 中的map,dict,lambda,reduce,filter
1.map(function,sequence) 对sequence 中的item依次执行function(item), 见执行结果组成一个List返回
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/usr/bin/python # -*- coding: utf-8 -*- def add100(x): return x + 100 hh = [ 10 , 11 , 12 ] print ( map (add100,hh)) def abc(a,b,c): return a * 1000 + b * 100 + c list1 = [ 11 , 22 , 33 ] list2 = [ 44 , 55 , 66 ] list3 = [ 77 , 88 , 99 ] print ( map (abc,list1,list2,list3)) list4 = [ 11 , 22 , 33 ] print ( map ( None ,list4)) print ([add100(x) for x in hh]) |
也有人说map 类似于,这个解析很形象
1 | #map(f, iterable) ==> [f(x) for x in iterable] |
2. dict 就是字典,以key,value的形式保存
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/python # -*- coding: utf-8 -*- dt = { 'a' : '1' , 'b' : '2' , 'c' : '3' , 'd' : '4' } for k in dt: print 'dt[%s] = ' % k,dt[k] print dt.items() for (k,v) in dt.items(): print 'dt[%s] = ' % k,v print dt.iteritems() for (k,v) in dt.iteritems(): print 'dt[%s] = ' % k,v |
3.lambda 他是一个表达式,不是语句,提供了一种快速定义单行函数形式,非常简单
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/usr/bin/python # -*- coding: utf-8 -*- a = lambda x:x * 2 print (a( 10 )) b = lambda x,y,z:(x + y) * z print (b( 2 , 3 , 49 )) print [( lambda x:x * x)(x) for x in range ( 1 , 11 )] |
4.reduce(function,sequence,start_value) 对sequence 中的item一次迭代调用function(item),如果有start_value,则可以当做初始值
例如:
1 2 3 4 5 6 7 | #!/usr/bin/python # -*- coding: utf-8 -*- def add(x,y): return x + y print reduce (add, range ( 1 , 11 ), 100 ) |
5.filter(function,sequence) 过滤函数 对sequence 中的item依次执行function(item), 将执行结果为True的item组成一个List/String/Tuple
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/usr/bin/python # -*- coding: utf-8 -*- def fn1(x): return x % 2 ! = 0 and x % 3 ! = 0 print filter (fn1, range ( 2 , 25 )) def fn2(x): return x! = 'a' print filter (fn2, 'abcdefg' ) |
--end--
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述