• python学习8—函数之高阶函数与内置函数


    python学习8—函数之高阶函数与内置函数

    1. 高阶函数

    a. map()函数

      对第二个输入的参数进行第一个输入的参数指定的操作。map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释放。

    # self define a function
    def map_xuan(func,array):
        temp = []
        for i in array:
            tem = func(i)
            temp.append(tem)
        return temp
    num_1 = [1,2,5,6,9]
    print(map_xuan(lambda x:x**2,num_1))
    
    # builtin function map
    # if the logic is simple, use lambda
    # if the logic is complicated, use function
    # the return value of map is a 迭代器
    print(list(map(lambda x:x**2,num_1)))

    b. filter()函数

      filter()函数对第二个输入的参数进行第一个参数指定逻辑的判断,并将符合逻辑的元素输出为一个迭代器,可用list()接收。

    # filter function
    # self define
    def filter_xuan(func,array):
        temp = []
        for p in array:
            if func(p):
                temp.append(p)
        return temp
    
    per = ['abs','acs','asdf','adfs','avr']
    print(filter_xuan(lambda n:n.endswith('s'),per))
    
    # builtin function
    print(list(filter(lambda n:n.endswith('s'),per)))

    c. reduce()函数

      reduce()函数缩减序列长度,将其按照第一个参数指定的运算操作压到一起得到一个最终值,可以指定运算操作的初始值也可以不指定。

    # reduce function
    from functools import reduce
    num_2 = [1,2,3,100]
    print(reduce(lambda x,y:x+y,num_2,7))
    print(reduce(lambda x,y:x+y,num_2))

    2. 内置函数

      python内置函数共68个,如下表:

    • all()遍历列表所有元素,若都为真则返回True,若有一个为假,则返回False。如果可迭代对象为空,也会返回True。相当于全部做与运算
    • any()相当有全部做或运算,有真则为真
    • bin()将十进制数转换为二进制数
    • bool()转化为布尔值:空、None、0为False
    • bytes()将字符串按照指定格式编码:bytes('你好',encoding='utf-8').decode('utf-8')
      • 用什么编码就用什么解码:ascii,gbk,utf-8
    • chr()按照ascii表返回数字对应的ascii符号
    • dir()输出某一个对象包含的方法
    • divmod()输出除法的商和余数:divmod(10,3),>>>(3,1)
    • eval()提取字符串中的数据结构,如果字符串里面是数学运算,则直接返回运算结果
    • hash()对不可变数据类型进行哈希运算,在同一次程序运行时,没修改过的变量哈希值不变,但是程序多次运行时,哈希值会一直改变,则不可以根据哈希值反推字符串
    • help()查看某个函数的定义文档
    • hex()将十进制数转换为十六进制
    • isinstance()判断对象是否为某个类型:isinstance(1,int)
    • globals()返回所有全局变量,locals()返回所有当前级别的局部变量
    • zip()拉链函数,将两个可迭代对象一一对应起来组成元组,所有元组组成一个迭代器,多余的元素忽略
    • max()函数对可迭代对象的每个元素从左到右一个数字(字母)一个的比较,并返回最大值。
      • 不同数据类型之间不能比较,例如数字与字符串
      • max(iterative, key = lambda x:x['age']),可以给max()指定比较的方法
    • ord()输出ascii表中符号对应的数字
    • pow(a,b) = a**b,次方运算;pow(a,b,c) = a**b % c
    • reversed(),反转序列
    • round()四舍五入
    • slice()切片,如slice(3,5) = [3:5],slice(1,5,2) = [1:5:2] = [start:stop:step]
    • sorted()排序,默认从小到大,
    • sum()求和
    • vars()没有参数的时候与locals()相同,vars(int)有参数的时候显示该对象int具有的全部方法
    • __import__(),可以导入字符串类型的文件名,而import只能导入文件名
  • 相关阅读:
    减绳子 [二分查找]
    *数据删除*OJ的原题大赏
    多项式大总结
    【YBTOJ】【Luogu P6218】[USACO06NOV] Round Numbers S
    【YBTOJ】【HDU3652】B-number
    【Luogu P5752】[NOI1999] 棋盘分割
    【YBTOJ】【UVA10559】方块消除 Blocks
    【YBTOJ】【Luogu P5020】[NOIP2018 提高组] 货币系统
    【YBTOJ】【Luogu P4180】[BJWC2010]严格次小生成树
    【YBTOJ】【Luogu P2680】[NOIP2015 提高组] 运输计划
  • 原文地址:https://www.cnblogs.com/yangjingxuan/p/11692829.html
Copyright © 2020-2023  润新知