内置函数 闭包引入 使用
####内置函数#### 特别重要,反复练习
####zip() 拉链函数 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
li=[1,2,3,4]
tu=('a','b','c')
s='python'
z=zip(li,tu,s) #把生成的迭代器赋给变量z
print(z,dir(z)) #返回一个迭代器 '__next__', '__iter__'
for i in z: # 元素个数与最短的列表一致
print(i)
##### sorted() 排序 ,形成新列表
li=[6,3,1,5,9,2,4]
print(sorted(li))
#sorted(iterable , key= , reverse=)
li= [('张一东', 80), ('张耳洞', 75), ('怼怼哥', 7), ('李业', 59)]
print(sorted(li,key=lambda x :x[1]),) #按照分数排序 升序
print(sorted(li,key=lambda x :x[1],reverse=True)) # 降序
print(sorted(li,key=lambda x :x,reverse=True)) # 默认按照,循环元素的第一个位置排序
####filter(函数,可迭代对象
) 列表推导式的筛选模式 # 返回成一个迭代器
lst = [{'id':1,'name':'tom','age':30},
{'id':1,'name':'jam','age':12},
{'id':1,'name':'aim','age':16},
]
ls=filter(lambda x :x['age']<30,lst) # 把age大于30的过滤
print(ls) # 返回成一个迭代器<filter object at 0x000001CDF1500E48>
print(list(ls),type(ls) ,dir(ls)) # <class 'filter'> '__iter__', '__next__',
####map(函数,可迭代对象) 返回一个迭代器 ,生成器表达式:循环模式
# 使用 lambda 匿名函数,计算平方数
ls=[1, 2, 3, 4, 5]
map(lambda x: x ** 2, ls)
# 提供了两个列表,对相同位置的列表数据进行相加
li1=[1, 3, 5, 7, 9]
li2=[2, 4, 6, 8, 10]
map(lambda x, y: x + y,li1,li2 )