• 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函数得到最终结果,如下所示:

    #Python学习交流群:778463939
    #一个迭代器
    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中的元素自乘之后再相加

  • 相关阅读:
    魔兽世界服务器Trinitycore分析二:auth server的main函数
    白话经典算法系列之七 堆与堆排序
    Opencv学习笔记(六)SURF学习笔记
    sprintf,你知道多少?
    色相环上面的颜色和相邻颜色的关系是什么
    视达配色教程10 绿色的意向是什么
    网页设计实战3 ufo类型的科技网页如何实现
    如何使用echo.js实现图片的懒加载(整理)
    网页设计实战1 如何实现纸叠登录效果
    人为什么要好好努力学习工作
  • 原文地址:https://www.cnblogs.com/djdjdj123/p/14076104.html
Copyright © 2020-2023  润新知