这三个内置函数还是非常有用的,在工作中用的还不少,顺手,下面一一进行介绍

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)的更多相关文章

  1. python关于list的三个内置函数filter(), map(), reduce()

    ''' Python --version :Python 2.7.11 Quote : https://docs.python.org/2/tutorial/datastructures.html#m ...

  2. Python 内置函数&filter()&map()&reduce()&sorted()

    常用内置函数 Python 2.x 返回列表,Python 3.x 返回迭代器 在进行筛选或映射时,输出的结果是一个数组,需要list帮助. 如:print(list(map(lambda x:x+1 ...

  3. Python内置函数filter, map, reduce

    filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...

  4. Python中字符串String的基本内置函数与过滤字符模块函数的基本用法

    Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...

  5. Python【zip-map-filter】三个内置函数

    print("============内置函数:zip===========")l2 = ['a','b','c','e','f','g']l3 = [1,2,3]L4=['A', ...

  6. 内置函数filter()和匿名函数lambda解析

    一.内置函数filter filter()函数是 Python 内置的一个高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回由符合条件迭代器 ...

  7. 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...

  8. 内置函数_map()、reduce()、filter()

    map().reduce().filter() map()内置函数把一个函数func依次映射到序列或迭代器对象的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是原序列中元素经过 ...

  9. python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04

    多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...

随机推荐

  1. PhoenixFD插件流体模拟——UI布局【Resimulation】详解

    Liquid Resimulation 流体再(重)渲染 本文主要讲解Resimulation折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 综述 Liquid Resi ...

  2. Linux下安装PHP环境并配置Nginx支持php-fpm模块

    修改php配置 vi /etc/php.ini 打开php配置文件/etc/php.ini找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存 ...

  3. DRF中的序列化器

    DRF中的序列化器详细应用   视图的功能:说白了就是接收前端请求,进行数据处理 (这里的处理包括:如果前端是GET请求,则构造查询集,将结果返回,这个过程为序列化:如果前端是POST请求,假如要对数 ...

  4. 高级编程T-SQL函数

    --字符串函数--1.LEN:返回一个字符串的字符数select LEN('中国'),LEN('abc123!')select LEN('abc '+'1'),LEN(' abc')--2.DataL ...

  5. 9.22 keep studying

    项目要换用element组件了. element [http://element.eleme.io/1.4/#/zh-CN]是饿了么前端出品的一套基于Vue2.0的组件库,今天看了一下,确实简单好看. ...

  6. permissions required by Vibrator.vibrate: android.permission.VIBRATE

    <!-- 静止休眠 --><uses-permission android:name="android.permission.WAKE_LOCK" />&l ...

  7. CentOS 7 Redis 内网 安装 卸载

    # 不能连接外网, 安装Redis服务器的过程 https://redis.io/download (官网下载安装包, 最新版) redis-*.tar.gz 放在安装目录/usr/local/red ...

  8. GPU、CPU、FPGA

    一.计算核心增加 二者都由寄存器.控制器.逻辑单元构成,但比例很大不同,决定了CPU擅长指令处理,函数调用上:GPU在数据处理(算数运算/逻辑运算)强力很多. NIVIDA基于Maxwell构架的GP ...

  9. sublime使用技巧汇总

    sublime使用技巧 Ubuntu下安装sublime text 3143版本 Install the GPG key: wget -qO - https://download.sublimetex ...

  10. Nginx+Django搭建

    本机环境介绍 虚拟机操作系统版本如下 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) IP地址 ...