python之有用的3个内置函数(filter/map/reduce)
这三个内置函数还是非常有用的,在工作中用的还不少,顺手,下面一一进行介绍
1、filter
语法:filter(function,iterable)
解释:把迭代器通过function函数进行过滤出想要的数据
用法:可以设置一个迭代器,然后把相同属性的元素过滤出来,如下所示
list1 = [1,2,3,4,5,6,7,8,9,10] listTemp = filter(lambda x:x%2==0,list1)
上面的意思是过滤出偶数(即被2整除的数),其中使用了匿名函数lambda,非常简便,当然我们也可以自己顶一个函数来实现
另外在python2.*版本中是直接返回list的,但在python3.*中是返回一个迭代器
2、map
语法:map(function,*iterable)
解释:把迭代器(或多个迭代器)通过function函数得到结果
用法:可以设置一个或多个迭代器,然后把相同位置(如果为多个迭代器)的元素通过function函数得到最终结果,如下所示:
#一个迭代器
list1 = [1,2,3,4,5,6,7,8,9]
listTemp = map(lambda x:x*x,list1) #多个迭代器
list2 = [11,12,13]
list3 = [21,22,23,24,25]
listTemp = map(lambda x,y,z:x+y+z,list1,list2,list3)
多个迭代器的时候,是对后面所有的迭代器进行处理(lambda函数的参数个数必须和后面迭代器的个数一致),这里我们又使用了匿名函数lambda
同filter一样,在python2.*版本中是直接返回list的,但在python3.*中是返回一个迭代器
3、reduce
语法:reduce(function,iterable)
解释:把迭代器通过function进行累积计算
用法:function必须包含俩个参数,第一个参数表示初始值,第二个参数表示迭代器的每个元素,如下:
list1 = [1,2,3,4,5]
listTemp = reduce(lambda x,y:x+y*y,list1)
print(listTemp)
通过print可以看出使用的是python3.*,这里要注意的是,reduce函数在3.*版本里面已经移动到functools里面
这里我们再次使用了lambda匿名函数,非常好用,函数式意思是把list1中的元素自乘之后再相加
python之有用的3个内置函数(filter/map/reduce)的更多相关文章
- python关于list的三个内置函数filter(), map(), reduce()
''' Python --version :Python 2.7.11 Quote : https://docs.python.org/2/tutorial/datastructures.html#m ...
- Python 内置函数&filter()&map()&reduce()&sorted()
常用内置函数 Python 2.x 返回列表,Python 3.x 返回迭代器 在进行筛选或映射时,输出的结果是一个数组,需要list帮助. 如:print(list(map(lambda x:x+1 ...
- Python内置函数filter, map, reduce
filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...
- Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...
- Python【zip-map-filter】三个内置函数
print("============内置函数:zip===========")l2 = ['a','b','c','e','f','g']l3 = [1,2,3]L4=['A', ...
- 内置函数filter()和匿名函数lambda解析
一.内置函数filter filter()函数是 Python 内置的一个高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回由符合条件迭代器 ...
- 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...
- 内置函数_map()、reduce()、filter()
map().reduce().filter() map()内置函数把一个函数func依次映射到序列或迭代器对象的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是原序列中元素经过 ...
- python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...
随机推荐
- PhoenixFD插件流体模拟——UI布局【Resimulation】详解
Liquid Resimulation 流体再(重)渲染 本文主要讲解Resimulation折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 综述 Liquid Resi ...
- Linux下安装PHP环境并配置Nginx支持php-fpm模块
修改php配置 vi /etc/php.ini 打开php配置文件/etc/php.ini找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存 ...
- DRF中的序列化器
DRF中的序列化器详细应用 视图的功能:说白了就是接收前端请求,进行数据处理 (这里的处理包括:如果前端是GET请求,则构造查询集,将结果返回,这个过程为序列化:如果前端是POST请求,假如要对数 ...
- 高级编程T-SQL函数
--字符串函数--1.LEN:返回一个字符串的字符数select LEN('中国'),LEN('abc123!')select LEN('abc '+'1'),LEN(' abc')--2.DataL ...
- 9.22 keep studying
项目要换用element组件了. element [http://element.eleme.io/1.4/#/zh-CN]是饿了么前端出品的一套基于Vue2.0的组件库,今天看了一下,确实简单好看. ...
- permissions required by Vibrator.vibrate: android.permission.VIBRATE
<!-- 静止休眠 --><uses-permission android:name="android.permission.WAKE_LOCK" />&l ...
- CentOS 7 Redis 内网 安装 卸载
# 不能连接外网, 安装Redis服务器的过程 https://redis.io/download (官网下载安装包, 最新版) redis-*.tar.gz 放在安装目录/usr/local/red ...
- GPU、CPU、FPGA
一.计算核心增加 二者都由寄存器.控制器.逻辑单元构成,但比例很大不同,决定了CPU擅长指令处理,函数调用上:GPU在数据处理(算数运算/逻辑运算)强力很多. NIVIDA基于Maxwell构架的GP ...
- sublime使用技巧汇总
sublime使用技巧 Ubuntu下安装sublime text 3143版本 Install the GPG key: wget -qO - https://download.sublimetex ...
- Nginx+Django搭建
本机环境介绍 虚拟机操作系统版本如下 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) IP地址 ...