filter、map、reduce、lambda[通俗易懂]

filter、map、reduce、lambda

大家好,又见面了,我是全栈君。

1. filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回

def f(x): 
    return x % 2 != 0 and x %3 != 0
filter(f, range(2,25))

输出:

[5, 7, 11, 13, 17, 19, 23]

2. map(function, sequence) :对sequence中的item依次执行function(item),将执行结果组成一个List返回:

def cube(x):
    return x*x*x
map(cube, range(1,11))

输出:

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:

def add(x, y):
    return x+y
map(add, range(8), range(8))

输出:

[0, 2, 4, 6, 8, 10, 12, 14]

3. reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:

def add(x, y):
    return x+y
reduce(add, range(1,11))

输出:

55

设定初始值

reduce(add, range(1, 11), 20) 

输出:

75

4. lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方: 

g = lambda x: x * 2 
g(3)

输出:

6

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/xiaohuangsh/blog/829271

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108681.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • N 皇后问题_用回溯法解N皇后问题

    N 皇后问题_用回溯法解N皇后问题n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n皇后问题的棋子放置方案,该方案中‘Q’和‘.’分别代表了皇后和空位。示例如下:输入:4输出:[[".Q..",//解法1"…Q","Q…","…..

    2022年9月30日
    0
  • pycharm-professional-2021.12.13激活【2021.10最新】

    (pycharm-professional-2021.12.13激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html23EQQJJI0G-eyJsaWN…

    2022年3月30日
    52
  • Oracle 绑定变量_oracle变量不在选择列表中

    Oracle 绑定变量_oracle变量不在选择列表中begintest.test(a=>1,b=>:603);end;执行的时候报错:Ora-01008错误:Oracle?并非所有变量都已绑定原因是??b=>:603之前多了一个冒号导致他判断错误,解决方法是检查和删除不需要的冒号。…

    2022年9月7日
    0
  • mysql binlog日志_事务日志

    mysql binlog日志_事务日志binlog就是binarylog,二进制日志文件,这个文件记录了mysql所有的dml操作。通过binlog日志我们可以做数据恢复,做主住复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架构人员来讲是非常重要的。如何开启mysql的binlog日志呢?在my.inf主配置文件中直接添加三行log_bin=ONlog_bin_basenam

    2022年8月31日
    1
  • clion激活码【注册码】

    clion激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    58
  • 数据结构之队列建议收藏

    一C++标准库queue(1)成员函数(2)示例二C++实现队列

    2021年12月19日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号