map-filter-reduce

map

先看下Python官方文档的说法

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

见识一下

>>> 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 中所有返回假的元素会被移除。

也见识下

>>> 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.

见识下

>>> 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JS中的逻辑操作符

    在JavaScript中,逻辑运算符可以操作ECMAScript中的任意值,同时也不强制返回boolean类型。

    Cloud-Cloudys
  • http和https

    http:超文本传输协议,是互联网上应用很广泛的一个网络协议。它负责完成客户端到服务端的一系列操作,专门用来传输HTML的超媒体文档等web内容。他是基于TCP...

    Cloud-Cloudys
  • git clone后如何checkout到remote branch

    通常情况使用git clone github_repository_address下载下来的仓库使用git branch查看当前所有分支时只能看到master分...

    Cloud-Cloudys
  • Mysql基础

    使用更新和删除操作时一定要用 WHERE 子句,不然会把整张表的数据都破坏。可以先用 SELECT 语句进行测试,防止错误删除。

    大学里的混子
  • 查看表空间使用的两条常用SQL

    1. 查看表空间大小: SELECT tablespace_name, SUM(bytes)/1024/1024 total FROM DBA_FREE_S...

    bisal
  • Python|高阶函数

    01 函数名也是变量! abs(-100) 对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个计算绝对值的函数! 因此,函数名其实就是指向...

    double
  • 1个等式!3行代码!78倍!如何加速机器学习算法?

    众所周知,Python的for循环本质上要比C慢很多。 而且深度学习和机器学习算法严重依赖通过for循环执行的矩阵运算。

    量化投资与机器学习微信公众号
  • 数据价值如何在企业实战中落地(33PPT)

    大数据文摘
  • 腾讯云最新优惠活动和学生服务器

    腾讯云学生服务器优惠套餐 1.注册腾讯云帐号 2.完成个人认证 3.购买套餐 4.填写学生信息体验版云服务器优惠套餐

    用户5789651
  • 腾讯云学生服务器和最新优惠活动

    腾讯云学生服务器优惠套餐 1.注册腾讯云帐号 2.完成个人认证 3.购买套餐 4.填写学生信息体验版云服务器优惠套餐

    最新活动分享

扫码关注云+社区

领取腾讯云代金券