Python函数式编程:内置filter函数使用说明
filter操作是函数式编程中对集合的重要操作之一,其作用是从原集合中筛选符合条件的条目,组成一个新的集合。
这在我们日常编程中是非常常见的操作。我们通常的做法是通过循环语句来处理。
而使用filter方法会非常方面。
我们下面看python中的例子:
我们需求是从一个列表中筛选满足条件的条目,我们先用传统的循环语句来处理
>>> scores = [55, 80, 83, 64, 91, 100, 90, 79]
>>> for score in scores:
... if score>=80 and score<90:
... newscores.append(score)
...
>>> print newscores
[80, 83]
>>>
我们下面用filter函数来处理
>>> filter(lambda x : x>=80 and x<90 ,scores)
[80, 83]
可以看出,用filter函数,只要一句语句,调用filter函数即可,返回值就是过滤后的列表。
也可以看出,filter函数需要两个参数:
第一个参数是处理函数,该函数有一个参数,就是集合中的元素,函数体就是一个返回布尔值的表达式
第二个参数就是待处理的集合
其filter函数的执行思路是,迭代对集合中的每个元素,传给第一个参数定义的函数进行处理,如果函数的返回值为true,则说明该元素需要保留。
Python函数式编程:内置filter函数使用说明的更多相关文章
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- Python descriptor 以及 内置property()函数
Python Descriptor 1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- Python基础编程 内置函数
内置函数 内置函数(一定记住并且精通) print()屏幕输出 int():pass str():pass bool():pass set(): pass list() 将一个可迭代对象转换成列表 t ...
- python函数式编程之高阶函数学习
基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用 ...
- 【python】python函数式编程、高阶函数
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并 返回. def f(x): r ...
- python 中的内置高级函数
1.map(function,iterable) map是把迭代对象依次进行函数运算,并返回. 例子: map返回的十分map对象,需要list()函数转化. 2.exec()函数 执行储存在字符串或 ...
- Python“函数式编程”中常用的函数
1.map(func,seq[,seq,...]) 对序列中的每个元素应用函数,python2中map()返回的是列表,python3中返回的是迭代器,可以用list()转换成列表.以下例子为pyth ...
随机推荐
- sqlite详细介绍
------------------------------------------------------------------------------SQLite简介-------------- ...
- setCentralWidget就可以把Qwidget设置为QMainWindow的主窗口
前面说的return app.exec() 这句话是用来使程序进入事件循环,除了直接递交的事件外,所有的事件都要在这个循环中被一层一层的分发,最后找到相应的处理函数来处理事件. 顶级窗口和顶级窗口是存 ...
- JAVA GUI学习 - JSplitPane分屏组件学习
public class JSplitPaneKnow extends JFrame { JSplitPane jSplitPane; JPanel jPanelRed; JPanel jPanelB ...
- android 关于LCD背光调节渐变过程引起背光闪烁问题
如果背光渐变过程会引起背光闪烁,可以采取以下任意一种方法修改: 方法1.减少调节级别时间 http://blog.csdn.net/sergeycao 默认的设计在关闭背光时会有灭屏动画,就是 ...
- hdu1395-2^x mod n = 1
http://acm.hdu.edu.cn/showproblem.php?pid=1395 原理为 a ^ b % n == d ; >>>>>> (( a % ...
- Android.mk的用法和基础
一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...
- Android学习之DragEvent
关于DragEvent Google Android API中是这么说的 Represents an event that is sent out by the system at various t ...
- Android Studio导出Jar包
这篇博客将介绍一下如何用Android Studio导出jar包,希望能给大家带来帮助. 首先需要修改build.gradle文件,在Android Studio中会显示多个build.gradle文 ...
- JSON Editor 中文文档
JSON Editor JSON Editor 根据定义的JSON Schema 生成了一个Html 表单来对JSON进行编辑.它完整支持JSON Schema 的版本3和版本4,并且它集成了一些流行 ...
- 安装Oracle,新建组、用户的时候的一个错误
[root@localhost /]# mkdir -p /u01/oracle[root@localhost /]# useradd -g oinstall -G dba -d /u01/oracl ...