python 中的 filter, lambda, map, reduce 内置函数

本文介绍了Python中的lambda匿名函数、filter、map、reduce等高级函数的使用方法,并通过实例展示了它们如何在处理序列数据时发挥高效作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/dysj4099/article/details/17412797


1. lambda 匿名函数

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. >>> lambda_a = lambda a : a + 1  
  2. >>> lambda_a(2)  
  3. 3  

构建一个函数lambda_a,不需要显示指定函数名,冒号之前是参数,此功能可以跟filter共同使用。


2. filter(func, seq) 用func过滤seq中的每个成员,并把func返回为True的成员构成一个新的seq

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. >>> la = lambda a : a >= 10  

  2. >>> test = [1012152213]  
  3. >>> filter(la, test)  
  4. [10152213]  

  5. >>> test2 = ['haha'15102]  
  6. >>> filter(la, test2)  
  7. ['haha'1510]  

  8. >>> la('test')  
  9. True  
  10. >>> la('best')  
  11. True  
  12. >>> la('%')  
  13. True  

  14. >>> test3 = [[], 152]  
  15. >>> filter(la, test3)  
  16. [[], 15]  

3.  map(fun, seq) 用func处理seq中的每个成员,并组织成新seq返回

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. >>> def a(x): return x**2  
  2. ...   
  3. >>> map(a, [1,2,3,4,5])  
  4. [1491625]  

4. reduce(func, seq, init_v)  func必须为两个参数,对seq中的成员迭代调用func(return后的值参与下一次迭代),并且可以指定初始化值 init_v

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. >>> def add(x, y): return x + y  
  2. ...   
  3. >>> reduce(add, range(110), 15)  
  4. 60  

组合用法举例:

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. >>> import string  
  2. >>> str_path = ". : /usr/bin:/usr/local/bin/ : usr/sbin/ :"  
  3. >>> filter(lambda path:path != '', map(lambda paths:string.strip(paths), string.split(str_path,':')))  
  4. ['.''/usr/bin''/usr/local/bin/''usr/sbin/']  


将字符串str_path 根据 ‘:’ 切分,过滤空字符串 并返回列表。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值