python的map与reduce与filter
map(f, Itera) # 对每一个元素都使用f(x)
>>> sq = lambda x:x**2
>>> l = map(sq,[-1,0,1,2,-3])
>>> list(l)
[1, 0, 1, 4, 9]
当然也可以传入两个参数的:
>>> add = lambda x, y: x + y
>>> l = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
>>> list(l)
[3, 7, 11, 15, 19]
reduce(f, Itera) # 对前一个x1,x2把结果f(x1,x2)继续和序列的下一个元素x3做累积计算f(f(x1,x2),x3)
函数f必须有两个参数x,y
>>> from functools import reduce
>>> def add(x,y): #定义一个相加函数
return x+y >>> reduce(add,[1,2,3,4,6])
16
add(x,y)是我们定义的一个函数,将add函数和[1,2,3,4,6]列表传入reduce函数,就相当于1+2+3+4+6 =16。即把结果继续和序列的下一个元素做累加。
即reduce的作用是:把结果继续和序列的下一个元素做累积计算。
filter(f, Itera) # 根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的iterator
>>> is_odd = lambda x:x%2==1
>>> list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))
[1, 7, 9, 17]
另外,map对象只能保持一次:被使用一次后其内容被清除
>>> numbers = 2,4,8.1
>>> numbers = map(lambda x:isinstance(x,(int,)),numbers)
>>> reduce(lambda x,y: x and y, numbers) # 使用numbers
False
>>> numbers
<map object at 0x000002A9753F7C50>
>>> list(numbers) # 内容被清除了
[] >>> numbers = 2,4,8.1
>>> numbers = map(lambda x:isinstance(x,(int,)),numbers)
>>> list(numbers) # 使用numbers
[True, True, False]
>>> list(numbers) # 内容被清除了
[] # 最好以列表保存
>>> numbers = 2,4,8.1
>>> numbers = list(map(lambda x:isinstance(x,(int,)),numbers))
>>> numbers
[True, True, False]
>>> reduce(lambda x,y: x and y, numbers)
False
# 当然元组以保存也行
>>> numbers = 2,4,8.1
>>> numbers = tuple(map(lambda x:isinstance(x,(int,)),numbers))
>>> numbers
(True, True, False)
>>> reduce(lambda x,y: x and y, numbers)
False
python的map与reduce与filter的更多相关文章
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- Python【map、reduce、filter】内置函数使用说明
题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...
- Python:map()、reduce()、filter()的区别
文章转于:https://blog.csdn.net/goupper1991/article/details/49803355 原文博主:https://blog.csdn.net/goupper19 ...
- python的map、reduce和filter(过滤器)函数(廖雪峰老师python基础)
1.map 语法: map(func,Iterable) map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返 ...
- Python函数式编程中map()、reduce()和filter()函数的用法
Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和“行内函数”lambda函数 ...
- 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python里的map、reduce、filter、lambda、列表推导式
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python高阶函数map、reduce、filter、sorted的应用
#-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.wait import Web ...
随机推荐
- 《从零开始学Swift》学习笔记(Day 11)——数据类型那些事儿?
原创文章,欢迎转载.转载请注明:关东升的博客 在我们学习语言时都会学到这种语言的数据类型,在Swift中数据类型有那些呢?整型.浮点型.布尔型.字符.字符串这些类型是一定有的,其中集合. ...
- 坑爹的 HTTPClient java.lang.NoSuchFieldError: INSTANCE
项目中需要用到httpclient ,maven配置如下 <dependency> <groupId>org.apache.httpcomponents</groupId ...
- Linux下带宽流量工具iftop实践
在Linux/类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop ...
- JavaWeb 之过滤器
1. 什么是过滤器 Servlet 是用来处理请求的, 过滤器是用来拦截请求的. 当用户请求某个 Servlet 时,会先执行部署在这个请求上的 Filter, 而 Filter 决定是否调用 Ser ...
- 单例 与 static
单例的构造器是private的,不能直接用new 创建对象.static虽然可以随时使用,但是还是有被重新创建的可能. 举个例子,你希望任何时候有一个class A的实例就可以了class B { ...
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() .根据首字母对应VERBOSE,DEBUG,INFO, WA ...
- 3.7 基于51单片机+MC20的路径显示【使用STC15W内核】
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- 缓存:Memcached Redis
一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- UI控件之UITextField
UITextField:文本框:用来输入一行文本,父类是UIControl UITextField *field1=[[UITextField alloc]initWithFrame:CGRectMa ...
- $git学习总结系列(2)——远程仓库
本文主要介绍git本地仓库和GitHub远程仓库之间的交互和数据传输. 注:首先需要到github.com上注册一个账号. 1. 添加本地SSH Key到GitHub 要向GitHub远程仓库推送代码 ...