前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >map-filter-reduce

map-filter-reduce

作者头像
Cloud-Cloudys
发布2020-07-06 11:27:05
5450
发布2020-07-06 11:27:05
举报

map

先看下Python官方文档的说法

map(function, iterable, …),返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。 如果传入了额外的 iterable 参数,function 必须接受相同个数的实参并被应用于从所有可迭代对象中并行获取的项。

见识一下

代码语言:javascript
复制
>>> def cook(something):
...     if something == "cow":
...         return "hamburger"
...     elif something == "tomato":
...         return "chips"
...     elif something == "chicken":
...         return "ddrumstick"
...     elif something == "corn":
...         return "popcorn"
...
>>> list(map(cook, ["cow", "tomato", "chicken", "corn"]))
['hamburger', 'chips', 'ddrumstick', 'popcorn']

filter

也看下官方文档的说法

filter(function, iterable),用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。iterable 可以是一个序列,一个支持迭代的容器,或一个迭代器。如果 function 是 None ,则会假设它是一个身份函数,即 iterable 中所有返回假的元素会被移除。

也见识下

代码语言:javascript
复制
>>> def isVegetarian(food):
...     check = ['chips', 'popcorn']
...     if food in check:
...         return True
...     else:
...         return False
...
>>> list(filter(isVegetarian, ['hamburger', 'chips', 'ddrumstick', 'popcorn']))
['chips', 'popcorn']

reduce

再看下官方文档

Apply function of two arguments cumulatively to the items of iterable, from left to right, so as to >reduce the iterable to a single value.

见识下

代码语言:javascript
复制
>>> from functools import reduce
>>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
15

一图胜千言

曾看到过一张把filter、map、reduce描述得很透彻得图,真滴六?

references

  • Demonstrating map, filter, and reduce in Swift using food emoji
  • 函数式编程指引
  • functools.reduce
  • map
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年11月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • map
  • filter
  • reduce
  • 一图胜千言
  • references
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档