zoukankan      html  css  js  c++  java
  • python 13 内置函数2

    内置函数(二)

    abs()    #返回绝对值--返回的是正数
    enumerate("可迭代对象","序号起始值")  #默认起始值为0,返回的是元组形式
        lst = [11,22,33]
        print([i for i in enumerate(lst,1)])
        # (1,11) (2,22) (3,33)
    max("可迭代对象")   #求最大值
    min("可迭代对象")   #求最小值
    sum()   #求和,字符串不可用
    dir()   #查看当前函数的方法
    
    """
    print(value, ..., sep=' ', end='
    ', file=sys.stdout, flush=False)
        file:  默认是输出到屏幕,如果设置为文件句柄,输出到文件
        sep:   打印多个值之间的分隔符,默认为空格
        end:   每一次打印的结尾,默认为换行符
        flush: 立即把内容输出到流文件,不作缓存
    """
    
    print(sep=" ",end="
    ")  #默认
    print(1,2,3,sep="*")  # 1*2*3
    print(111,end="")
    print(22)   #111222
    
    print(list("alex"))  # ['a', 'l', 'e', 'x']
    print(dict(a=1,b=2)) # {'a': 1, 'b': 2}
    
    zip() # 拉链 -- 按照最少的进行合并,打包成一个个元组。若是字典,取键
    lst = ["a","b","c"]
    lst1 = [1,2,3,4]
    print(list(zip(lst,lst1))) # [('a', 1), ('b', 2), ('c', 3)] 
    print(zip(lst,lst1))  # <zip object at 0x00000223D0834FC8>  zip函数的地址
    
    print(dict(zip(lst,lst1))) # {'a': 1, 'b': 2, 'c': 3}
    

    匿名函数

    变量 = lambda 形参:返回值
    """
    1.匿名函数定义没有def,可以赋值给变量,便于调用
    2.lambda后面直接加形参(形参可不写,也可接受多个)用逗号隔开
    3.必须有返回值,返回一个数据类型,可以是任意的数据类型,也可以将多个返回值写成一个数据类型
    4.函数名是lambda,一行函数
    """
    
    print((lambda x,y:x+y)(2,3))  #5
    print(lambda x,y:x+y(2,3))    #lambda 地址
    
    # 1
    ls = [lambda i:i*i for i in range(5)]
    print(ls[2](5))     #25
    # 上面函数解开:  
    ls = []
    for i in range(5):
        def func(i):
            return i*i
        ls.append(func)
    print(ls[2](5))
    
    # 2
    ls = [lambda :i*i for i in range(5)]
    print(ls[2]())   # 没有传进去参数,默认最后4*4 = 16
    # 解开:
    lst = []
    for i in range(5):
        def func():
            return i*i
        lst.append(func)
    print(lst[2]())
    
    #3
    lst = [x for x in (lambda :i**i for i in range(5))]
    print(lst[2]())
    #解开:
    lst1 = []
    def func():
        for i in range(5):
            def foo():
                return i**i
            yield foo
    
    for x in func():
        lst1.append(x)
    print(lst1[2]())
    

    内置函数(三)

    # format()
    print(format(13,"08b"))    # 8位2进制
    print(format(13,"08d"))    # 10进制
    print(format(13,"08o"))    # 8进制
    print(format(13,"08x"))    # 16进制
    
    # filter(function,iterable) # 筛选过滤
    # 例:
    lst=[1,2,3,4,5,6,7]
    ls = filter(lambda x:x>3,lst)
    print(list(ls))    # [4, 5, 6, 7]
    
    #或者:
    ls = [i for in filter(lambda x:x>3,lst)]
    print(ls)
    
    # map(function,iterable)  # 映射,把每个元素取出操作
    print(list(map(lambda x:x*x,[1,2,3,4])))
    # [1, 4, 9, 16]
    
    reversed("有序的可迭代对象")  # 反转
    """
    产生一个迭代器,操作时不改变原数据,重新开辟,因此地址不同
    字符串、列表、元组都可以用
    """
    ls = reversed("123")
    for i in ls:
        print(i)   # 3 2 1 
    
    sorted(iterable,key = "函数名",reverse = False)
    # 默认是升序, key是排序规则,reverse默认是升序
    # reverse = True 是降序
    ls = [1,5,6,98,6,7,3]
    print(sorted(ls))   #[1, 3, 5, 6, 6, 7, 98]
    print(sorted(ls,reverse=True)) #[98, 7, 6, 6, 5, 3, 1]
    
    reduce() #累计算
    from functools import reduce
    print(reduce(lambda x,y:x-y,[1,2,3,4,5]))  # -13
    

    闭包

    嵌套函数内,使用非全局变量就是闭包
    保证数据的安全性,装饰器使用
    print(ret.__code__.co_freevars) # 获取的是自由变量,不会自动销毁
     ret.__closure__ 判断是否是闭包
    
    def func():
        a = 1
        def f1():
            def foo():
                print(a)
            return foo
        return f1
    func()()()   
    
    # ret = func()
    # a = ret()
    # a()
    
  • 相关阅读:
    实用JS代码
    javascript-table出现滚动条表格自动对齐
    Javascript-关于for in和forEach
    Javascript-关于break、continue、return语句
    如何编写可怕的Java代码?
    请停止编写这么多的for循环!
    如何优雅地在Stack Overflow提问?
    为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?
    Java异常处理只有Try-Catch吗?
    看完这篇还不会用Git,那我就哭了!
  • 原文地址:https://www.cnblogs.com/yzm1017/p/11247071.html
Copyright © 2011-2022 走看看