先看filter()方法

print(list(filter(lambda n : n % 2 == 1, range(20))))
# 结果 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

这里如果用filter的话,说明匿名函数lambda给出的是个筛选条件,从1到19中筛选出奇数来。

filter将传入的函数依次作用到序列的每个元素,True则返回 False则不返回。

再看map()方法

print(list(map(lambda n : n % 2 == 1, range(20))))
# 结果 [False, True, False, True, False, True, False, True, False,
True, False, True, False, True, False, True, False, True, False, True]

用map的话,就好像变成了它判断对错的条件,只打印true和false。

print(list(map(lambda x: x + 1, range(10)))) 
# 结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

map一般的用法,参数有一个函数一个序列,将右边的序列经过左边的函数变换,生成新的序列。

最后看reduce()方法

reduce是一个累加函数,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。

这个函数并不是很常用,在python3中已将其从全局空间移除。

现被放置在functools的模块里,用之前需要引入  from functools import reduce

from functools import reduce

my_reduce = reduce(lambda x, y: x + y, range(10))
print(my_reduce)
# 结果是45 是将0到9相加

reduce的另外一个用法,列表去重

ids = [1,4,3,3,4,2,3,4,5,6,1]
func = lambda x,y:x if y in x else x + [y]
reduce(func, [[], ] + ids)

python中filter(),map()和reduce()的用法及区别的更多相关文章

  1. Python 中的map、reduce函数用法

    #-*- coding:UTF-8 -*- #map()函数接受两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回 def f(x): retu ...

  2. python中的map、reduce、filter、sorted函数

    map.reduce.filter.sorted函数,这些函数都支持函数作为参数. map函数 map() 函数语法:map(function, iterable, ...) function -- ...

  3. Python中的map( )和reduce( )

      1.变量可以指向函数,也可以使用变量和参数的形式完成函数调用.   2.那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算 ...

  4. Python 中的map和reduce学习笔记

    map和reduce都是Python中的内置函数 map函数接受两个参数,第一个参数是函数,第二个参数是列表,将函数依次作用于列表中的元素,并返回一个元素 reduce同样以函数和列表作为参数,区别在 ...

  5. Python中 filter | map | reduce | lambda的用法

      1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...

  6. Python中的map和reduce函数简介

    ①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...

  7. python之lambda、filter、map、reduce的用法说明

    python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...

  8. python中filter、map、reduce的区别

    python中有一些非常有趣的函数,今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,map,reduce为内 ...

  9. python之lambda、filter、map、reduce的用法说明(基于python2)

    python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...

随机推荐

  1. flexbox父盒子flex-wrap属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 【PHP】phpstudy vhosts.conf 配置

    #Listen 876 <VirtualHost *:876> ServerName localhost DocumentRoot "D:\phpStudy\PHPTutoria ...

  3. jekins构建通知邮件配置及邮件附件设置,jenkins构建通知邮件没有RF的log和report文件

    全局配置: 系统管理-系统设置-Extended E-mail Notification (本邮件是程序自动下发的,请勿回复!)<br/><br/>项目名称:$PROJECT_ ...

  4. Maven构建Web项目

    1. Maven的作用: [清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目] 2. 安装maven maven对JDK版本有要求,所以要设置好JDK的环境变量. M ...

  5. [C/E] 等差数列求和

    题目:要求给定一个整数 N,求从 0 到 N 之间所有整数相加之和. 解1:使用 for 循环依次递加. #include <stdio.h> int main(void){ int x; ...

  6. 第十九篇:不为客户连接创建子进程的并发回射服务器(select实现)

    前言 在此前,我已经介绍了一种并发回射服务器实现.它通过调用fork函数为每个客户请求创建一个子进程.同时,我还为此服务器添加了自动消除僵尸子进程的机制.现在请想想,在客户量非常大的情况下,这种为每个 ...

  7. C语言中打印返回值

    demo: ----return :返回值------------------ int mosquitto_username_pw_set(struct mosquitto *mosq, const ...

  8. linux 下 java 链接oracle数据库

    import java.sql.*; public class Hello { private final String oracleDriverName = "oracle.jdbc.dr ...

  9. JSP中的动态包含和静态包含的区别

    本文转载自http://blog.csdn.net/xuxu198899223/article/details/8501044 1. 语法格式 (1)静态包含:<%@ include file= ...

  10. WebService连接sql serever并使用Android端访问数据

    一.下载sql serever(真真难下) 建立数据库 二.创建WebService VS2015中新建项目,进行连接调试 1. 服务资源管理文件->数据连接->新建连接 2. 继续-&g ...