zoukankan      html  css  js  c++  java
  • PythonDay13

    第十三章

    今日内容

    • 匿名函数

    • 内置函数二

    • 闭包

    匿名函数

    匿名函数就是一行函数,关键字是lambda

    lambda x:x
    # lambda 参数:返回值
    x 是普通函数的形参 可以不定义形参
    :x 普通函数的返回值(只能返回一个数据类型)
       
    f = lambda x:x+6
    print(f(1)) # 结果:7
    print(f.__name__) # 查看函数的名字 函数名为lambda

    lst = [lambda :i for i in rang(5)]
    print(lst[0]())


    # 结果:4
    面试题拆解:
    lst = []
    for i in range(5):
       def func():
           return i
       lst.append(func)

    内置函数二

    字典的合成方式

    dict([(1,2),(3,4)])             # 中括号也可以换成小括号
    # {1: 2, 3: 4}

    dict(k=1,v=2,c=3)
    # {'k': 1, 'v': 2, 'c': 3}

    dic1 = {"key1":1,"key2":2}
    dic2 = {"a":1,"b":2}
    print(dict(**dic1,**dic2))
    # {'key1': 1, 'key2': 2, 'a': 1, 'b': 2}

    print()

    sep:每个元素之间分割的字符,默认是" "空格
    end:print执行完后的结束语句,默认是
    file:文件句柄,默认是显示到屏幕,也可以写进文件,例如:
    print(1,2,3,4,file=open("test","w",encoding="utf-8"))

    sum

    算出可迭代对象中的和,只能算int

    abs

    绝对值

    dir

    print(dir(list))
    print(dir(str))
    # 查看当前对象所有方法,返回的是列表

    zip

    拉链
    lst1 = [1,2,3,4]
    lst2 = ['a','b','c','d','e']

    面试题:
    print(dict(zip(lst1,lst2)))
    # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

    format

    print(format('alex','>20'))     # 左对齐
    print(format('alex','<20')) # 右对齐
    print(format('alex','^20')) # 居中

    进制转换
    print(format(10, "b")) # bin 二进制
    print(format(10, "08o")) # oct 八进制
    print(format(10, "08x")) # hex 十六进制
    print(format(0b1010), "d") # 十进制

    reversed

    反转
    print(list(reversed("alex")))
    # 得到的是迭代成列表之后的反转
    # 得到的是一个新列表

    filter

    过滤
    lst = [1,2,3,4,5,6]
    print(list(filter(lambda x:x>1,lst)))
    # 过滤掉大于1的数字

    lst = [{'id':1,'name':'alex','age':18},
          {'id':1,'name':'wusir','age':17},
          {'id':1,'name':'taibai','age':16},]

    print(list(filter(lambda x:x['age']>16,lst)))
    # 留下年龄大于16的信息

    map

    映射函数(将可迭代对象中的每个元素执行指定的函数)
    print(list(map(lambda x,y:x+y,[1,2,3],[11,22,33,44])))
    # 将每个列表的对应元素相加
    
    print([i*8 for i in [1,2,3,4]])
    # 8,16,24,32
    

    sorted

    print(sorted([1,-22,3,4,5,6],key=abs))  # key指定排序规则
    # 排序 执行了绝对值之后的列表
    
    lst = ["三国演义","红楼梦","铁道游击队","西游记","水浒传","活着"]
    print(sorted(lst,key=len))
    # 通过长度排序
    
    lst = [{"age": 19}, {"age1": 20}, {"age2": 80}, {"age3": 10}]
    # print(sorted(lst, key=lambda x: x.values()))
    print(sorted(lst, key=lambda x: x.keys(), reverse=True))
    # 通过键和值排序
    

    max,min

    最大值和最小值

    reduce

    from functools import reduce   # 累计算
    
    # 内部实现原理
    def func(x,y):
        return x+y
    print(reduce(func,[1,2,3,4,5]))
    
    print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
    

    闭包

    闭包
    # 1.在嵌套函数中,使用非本层且非全局变量的就是闭包
    # print(inner.__closure__)  判断是否是闭包  返回None就不是
      
    # 闭包的作用:
        # 1.保护数据的安全性
        # 2.装饰器
    
  • 相关阅读:
    装饰器的用法——用装饰器来记录函数被调用的次数
    类和对象(上) C++
    数据结构—树(二叉树)
    数据结构—顺序表
    c++入门

    Cypress博客
    自动化测试框架总结2
    前端测试框架Jest总结
    关于redux和react书籍源码系列代码
  • 原文地址:https://www.cnblogs.com/xuyuwei/p/11384325.html
Copyright © 2011-2022 走看看