zip 拉链 返回迭代器
enumerate 枚举 返回迭代器
dict(zip(("a","b),[1,2])) 字典
it=enumerate(["a","b],start=1) start指定枚举值
lambda 匿名函数:用一句话来表达只有返回值的无名函数
*arg 普通收集参数 收集多余没人要的普通实参
**kwargs 关键字收集参数 收集多余没人要的关键字实参
global 全局变量
filter map reduce 的作用
filter =>过滤数据
filter(函数,iterable)
保留偶数,过滤所有奇数
lst=[1,2,3,4,5]
it=filter(lambda x:True if x%2==0 else False,lst)
map=>处理(映射)数据
map(func,iterable)=>迭代器
lst=[1,2,3]
map(lambda x:x*3,lst)
print(list(lst))
reduce=>计算数据
reduce(func,interable)=>计算的结果
[5,4,8,8]=>5488
from functools import reduce
reduce(lambda x,y:x*10+y,lst)
python递归的最大层数
994~1000层
官方1000 实际994~1000
设置递归最大层数
import sys
sys.setrecursionlimit(99)
什么是迭代器,什么是可迭代对象
迭代器:迭代数据的工具
可迭代的对象:可以迭代的数据
把不能直接通过next获取的数据=>可以直接被next获取数据
具有 _ _ iter _ _() 和 _ _ next _ _()两个方法的是迭代器
具有 _ _ iter_ _()可迭代对象
生成器的本质就是迭代器 可以自定义迭代的逻辑
创建方式有两种
1.生成器表达式(推导式)
(i for i in range(10))
2.生成器函数(含有field关键字)
装饰器:在不改变原有代码情况下,为原函数扩展新功能
装饰器本质就是闭包
闭包:
1.互相嵌套的两个函数,内函数使用了外函数的局部变量
2.外函数把内函数返回出来的过程,是闭包,内函数是闭包函数
什么是反射及应用场景
通过字符串去操作类对象或者模块当中的属性方法
class abc():
a=1
def abc():
pass
obj.abc()
obj.a
obj.abc()