python中非常高效且实用的函数:Map和Filter

python中非常高效且实用的函数:Map和Filter

Map和Filter函数

初见

list(map(lambda x: os.path.join(dirname, x), 
    filter(lambda x:os.path.splitext(x)[1]==ext, os.listdir(dirname))))

在项目中初见这段代码,很茫然。但好在代码中会给函数名,功能写在名字上。所以,调用起来不是什么问题。但究其功能的实现过程,还是需要一点精力的。

窥探

更多介绍:https://baijiahao.baidu.com/s?id=1653858322655177591&wfr=spider&for=pc

代码中不可避免地会大量使用for循环,那么for循环中是一种怎样的实现过程,可以像函数那样分成各个功能块吗?这里给的答案是,可以。
在for循环中,各个功能块中对应的功能介绍如下:

  1. 将一系列语句映射到每个值
  2. 筛选满足特定条件的值
  3. 或将数据集减少为单个聚合值

而这刚好对应python中三个函数:

  1. Map:对每个项应用相同的步骤集,存储结果
  2. Filter:应用验证条件,存储计算结果为 True 的项
  3. Reduce:返回一个从元素传递到元素的值

实践

map函数:https://www.runoob.com/python/python-func-map.html
filter函数:https://www.runoob.com/python/python-func-filter.html

语法:

map(function, iterable, …)

一般是对一个或者多个iterable的list中的每个元素执行function, 返回包含每次 function 函数返回值的新列表(python3中是返回迭代器)。

filter(function, iterable)

用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表

总结

对于代码的可读性有一定的影响。不过,使用这些函数来替代for循环并单独做成函数,代码会变得更为简洁,且这种方式对文件搜索或者其他列表操作也都有实用性,值得在以后的实践中尝试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值