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 ...
随机推荐
- Android输入法的显示与隐藏
显示输入法: public void ShowSoftInput(View v) { // v 接受输入的控件 mInputMethodManager = (InputMethodManager) ( ...
- Android实现splash
笔者近日遇到一个android中双splash的问题.要求先实现百度的logo,在接入自己的logo. public class MainActivity extends BaseActivity { ...
- KVC示例
KVC –key value Coding,可以让我们通过键值编码的形式进行属性值的赋值 参考苹果官网的图.. 1.KVC 定义一个Person类 .h文件 1: #import <Founda ...
- 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作
CodedUI Test是微软的自动化测试工具,在VS中非常好用.可以用来模拟鼠标点击,键盘输入.但执行的时候必须要用mstest调用,无法传入参数(当然可以写入config文件中,但每次修改十分麻烦 ...
- <2013 08 27> 雅思阅读相关
1.雅思阅读的总体难度不大,但是时间较紧,三段较长的阅读材料和40个题目,总耗时60min.基本上前两个材料可以花15~20min,最后一个材料至少花20min完成. 2.阅读的技巧在于三点:其一,先 ...
- SpringMVC流程架构图
[组件说明] 以下组件通常使用框架提供实现: 1.DisPatcherServlet:前端控制器(不需要程序员开发) 用户请求到达前端控制器,它相当于MVC模式中的C(Controller),Disp ...
- Elasticsearch之elasticsearch5.x 新特性
其实,elasticsearch5.x 和 elasticsearch2.x 并不区别很大. 是因为,ELK里之前版本各种很混乱,直接升级到5.0了. 其实,elasticsearch5.x 按理来说 ...
- Python代码实现删除一个list里面的重复元素
lst=[11,22,33,44,22,11,22,44] print(list(set(lst))) # 打印结果:[33, 11, 44, 22] d = {} for index,item in ...
- 021-Spring Boot 测试,Junit方式使用,mock方式,Controller测试
一.概述 二.Junit方式使用 2.1.基本使用 eclipse在新建的类上,右键→new→Junit Test Case,修改一下Source folder,选择src/test/java,下一步 ...
- Oracle学习笔记—connect、resource和dba三种权限(转载)
转载自: connect.resource和dba三种标准角色: 授权语句: grant connect ,resource,dba to user with admin option; (注意:其中 ...