zoukankan      html  css  js  c++  java
  • python学习之路03(函数)

    到时再记录

    3.内置函数-高阶函数

    1.filter(func,sequence)接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新迭代器(在python3中),(在python2中就返回一个list)

    li = ['a','b','c']
    
    
    def f(s):  # 定义一个过滤函数
        if s != 'a':
            return s
        
    re = filter(f,li)  # 使用filter函数将列表中的值分别传入函数中,不符合条件的就过滤,返回是一个迭代器
    print(re)
    for i in re:  # 迭代器通过for循环读取
        print(i)
    print(list(re))  # 将迭代器强制转换为list
    <filter object at 0x00000000006E03C8> b c

    2.map(func,sequence)接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,返回一个新迭代器(在python3中),(在python2中就返回一个list)

    li = ['a','b','c']
    
    
    def f(s):  # 定义一个函数
        return s + "zengwenhai"
    
    re = map(f,li)  # 使用map函数将列表中的值分别传入函数中,对列表中的每个值进行处理
    print(re)
    for i in re:  # 迭代器通过for循环读取
        print(i)
    print(list(re))  # 将迭代器强制转换为list
    <map object at 0x00000000007A0470> azengwenhai bzengwenhai czengwenhai

    3.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值

    
    
    from functools import reduce  # 在python中需要导入
    
    def add(x,y):
        return x + y
    
    print(reduce(add,[1,3,5,7,9]))  # reduce函数将列表中的值分别传入函数中,处理后放入列表中,再次传入值
    # 先计算头两个元素:f(1, 3),结果为4;
    # 再把结果和第3个元素计算:f(4, 5),结果为9;
    # 再把结果和第4个元素计算:f(9, 7),结果为16;
    # 再把结果和第5个元素计算:f(16, 9),结果为25;
    # 由于没有更多的元素了,计算结束,返回结果25。
    
    25
    
    
    
     
  • 相关阅读:
    C# JavascriptSerializer与匿名对象打造Json的完美工具
    C# 跨线程访问或者设置UI线程控件的方法
    使用Windows Live发布博客到博客园
    Ubuntu搭建ssh连接(连接方式:桥接网卡、网络地址转换(NAT))
    SQLServer right函数 从右侧截取指定位数的字符串
    python+MySQL架构
    pip换源(更换软件镜像源)
    Ubuntu搭建mysql,Navicat Premium连接
    一起学习造轮子(三):从零开始写一个React-Redux
    一起学习造轮子(二):从零开始写一个Redux
  • 原文地址:https://www.cnblogs.com/zengwenhai/p/8846835.html
Copyright © 2011-2022 走看看