Python-----内置函数补充

博客主要介绍Python相关知识。一是补充内置函数,如zip用于打包元素,sorted用于排序,filter用于过滤,map类似循环模式,reduce在Python 3被移至模块。二是讲解闭包,包括闭包形成条件及应用,闭包可保证数据安全,也是装饰器的本质。

一,内置函数补充

  1. zip():拉链方法,用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的内容(迭代器),如果个个可迭代对象的元素个数不一致,则按照长度最短的返回

    lst1 = [1,2,3]
    lst2 = ['a','b','c','d']
    lst3 = (11,12,13,14,15
    fol el in zip(lst1, lst2, lst3):
     print(el)
    # (1, 'a', '11')
    # (2, 'b', '12')
    # (3, 'c', '13')
  2. sorted():排序

    l1 = [7, 4, 1, 6,]
    print(sorted(l1)) # 形成了新的列表
    # 加key
    lst = [
        {'name': 'xiaohong', 'age': 73},
        {'name': 'xiaoming', 'age': 35},
        {'name': 'xiaoli', 'age': 25},
    ]
    print(sorted(lst, key=lambda x: x['age'])) # 按照年龄排序
    print(sorted(lst, key=lambda x: x['age'], reverse=True)) # 第三个参数,逆序
  3. filter(): 过滤,相当于生成器表达式的筛选模式,返回一个迭代器

    l1 = [56, 67, 12, 34, 78, 90]
    print([i for i in l1 if i > 60])  # [67, 78, 90]
    print(list(filter(lambda x: x > 60, l1))) # [67, 78, 90]
  4. map():相当于生成器表达式的循环模式

    l1 = [56, 67, 12, 34, 78, 90]
    print([i**2 for i in l1])
    print(list(map(lambda x: x**2, l1))
  5. reduce():python 3从内置函数剔除了,放到了模块中

    from functools import reduce
    print(reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])) # 15
    '''
    第一次: x,y 1,2 求和 3  记录到内存
    第二次: x,y 3,3 求和 6  记录到内齿
    第三次: x,y 6,4 求和 10  记录到内齿
    第四次: x,y 10,5 求和 15  返回
    '''

二,闭包,考点,难点

  1. 闭包形成的条件:
    • 闭包存在于嵌套函数
    • 内层函数对外层函数的非全局变量进行了引用(修改),产生了自由变量,这个自由变量不会随着函数运行结束而消失,保证了数据的安全
    • 函数名逐层返回,直至返回到最外层(参考)
  2. 闭包的应用:
    • 保证数据的安全
    • 装饰器的本质

转载于:https://www.cnblogs.com/hql1117/p/11066560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值