zoukankan      html  css  js  c++  java
  • 内置函数与匿名函数

    内置函数
    一、基础数据类型
    1、和数字相关
    (1)、数字类型 :{
    int: 整型,
    bool: 布尔型,
    float: 浮点型,
    complex: 负数}
    (2)、进制转换 {
    bin: 二进制,
    oct: 八进制,
    hex: 十六进制
    }
    (3)、数学运算{
    abs: 绝对值,
    divmod: 返回商余,
    round: 小数精确(默认到整数,也可以标记精确几位),
    pow: 幂运算,
    sum: 求和,
    min: 计算最小值(可以传函数进来,也可以计算可迭代对象),
    max: 计算最大值(与min方法一直)
    }
    2、和数据结构相关
    (1)、序列{
    列表和元组:{list:转化为列表,tuple:转化为元组},
    相关内置函数:{reversed:参数是序列,返回值是反向迭代器,slice:切片},
    字符串:{
    str: 字符串,
    format: 格式化输出(并不仅仅是格式化,还有format_spec功能),
    bytes: 转化为bytes类型,
    bytearray: 返回一个新的字节数组,
    memoryview: 返回给定参数的内存查看对象,
    ord: 字符按照unicode转数字
    chr: 数字按照unicode转字符
    ascii: 字符串转ascii,
    repr: 用于%r格式化输出
    }
    (2)、数据集合{
    dict: 字典,
    set: 集合,
    frozenset: 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
    }
    (3)、相关内置函数{
    len: 返回一个可迭代对象元素的长度,
    enumerate: 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,
    同时列出数据和数据下标,一般用在 for 循环当中,
    all: 判断是否有bool值为 False 的值,
    any: 判断是否有bool值为 True 的值,
    zip: 返回 一个迭代器
    filter: 接收一个函数f和一个列表list,,这个函数f的作用是对列表里每个元素
    进行判断,返回Ture或者False,filter根据结果自动过滤掉不符合条件的元素,返回
    返回符合的元素组成新的列表,
    map: 函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来
    map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,
    一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回,
    sorted: 对list、Dict进行排序,返回副本,原始输入不变(参数说明:iterable:可迭代对象;key:
    传入一个函数名,函数的参数是可迭代对象中的每一项,根据函数的返回值大小排序;reverse:排序规则
    reverse=Ture降序,reverse=False升序,有默认值;返回值:有序列表)
    }
    3、作用域相关{
    locals:以字典类型返回当前位置的全部局部变量,
    globals:以字典类型返回当前位置的全部全局变量
    }
    4、迭代器生成器相关{
    range:函数可创建一个整数列表,一般用在 for 循环中,
    next:返回迭代器的下一个项目,
    iter:用来生成迭代器
    }
    5、其他{
    (1)、字符串类型代码的执行{
    evel:用来执行一个字符串表达式,并返回表达式的值
    exec:用来执行一个字符串表达式,无返回值
    complie: 编码
    }
    (2)、输入输出{
    input: 输入,
    print: 输出,
    }
    (3)、内存相关{
    hash: 用于获取取一个对象(字符串或者数值等)的哈希值,
    id: 函数用于获取对象的内存地址
    }
    (4)、文件操作相关{open:于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写}
    (5)、模块相关{__import__:用于动态加载类和函数}
    (6)、帮助{help:进入help模式,指定查看某对象的帮助信息}
    (7)、调用相关:{callable:返回True或者False}
    (8)、查看内置属性{dir: 查看所有的内置函数(dir(__builtins__)),查看对
    某对象的属性及方法}
    }
    6、面向对象{
    pass #先欠着,还没学到,到时候补充 }
    7、反射{}
    }

    匿名函数
    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
    #这段代码
    def calc(n):
        return n**n
    print(calc(10))
     
    #换成匿名函数
    calc = lambda n:n**n
    print(calc(10))

     格式说明

    函数名 = lambda 参数 :返回值
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型

    l=[3,2,100,999,213,1111,31121,333]
    print(max(l))
    
    dic={'k1':10,'k2':100,'k3':30}
    
    
    print(max(dic))
    print(dic[max(dic,key=lambda k:dic[k])])
    

      

    res = map(lambda x:x**2,[1,5,7,4,8])
    for i in res:
        print(i)
    
    输出
    25
    16
    

      

    res = filter(lambda x:x>10,[5,8,11,9,15])
    for i in res:
        print(i)
    
    输出
    15
    

      练习

    现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
    
    #答案一
    test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
    print(test(t1,t2))
    #答案二
    print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
    #还可以这样写
    print([{i:j} for i,j in zip(t1,t2)])
    练习
    1.下面程序的输出结果是:
    d = lambda p:p*2
    t = lambda p:p*3
    x = 2
    x = d(x)
    x = t(x)
    x = d(x)
    print x
    
    2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
    
    3.以下代码的输出是什么?请给出答案并解释。
    def multipliers():
        return [lambda x:i*x for i in range(4)]
    print([m(2) for m in multipliers()])
    请修改multipliers的定义来产生期望的结果。
    
    练习
    

     内置函数掌握

    
    

    其他:input,print,type,hash,open,import,dir

    
    

    str类型代码执行:eval,exec

    
    

    数字:bool,int,float,abs,divmod,min,max,sum,round,pow

    
    

    序列——列表和元组相关的:list和tuple

    
    

    序列——字符串相关的:str,bytes,repr

    
    

    序列:reversed,slice

    
    

    数据集合——字典和集合:dict,set,frozenset

    
    

    数据集合:len,sorted,enumerate,zip,filter,map




  • 相关阅读:
    最短路一类问题总结
    [Luogu] UVA1205 Color a Tree
    [Luogu] UVA1193 Radar Installation
    [Luogu] P2859 [USACO06FEB]Stall Reservations S
    [Luogu] P1248 加工生产调度
    [Luogu] P3694 邦邦的大合唱站队
    [Luogu] CF229D Towers
    windows server清理文件
    python连接ES进行数据过滤删除,新增查询、创建索引功能
    ES以更新时间为标准,分离数据
  • 原文地址:https://www.cnblogs.com/lyh0301/p/8993417.html
Copyright © 2011-2022 走看看