内置函数的整理: def func(n): return n**n print(func(4)) f =lambda x:x**x print(f) 匿名函数 lambda 参数:返回值 f=lambda x,y,c:(x,y,c) print(f(1,2,3)) 排序 语法 sorted(iterable,key=None,regverse=False) 计算字符串的长度 lst=['as','sdf','asdf','gfd'] def func(): print(sorted(lst,key=func)) lst = ['天龙八部', '西游记', '红楼梦', '三国演义'] print(sorted(lst, key=lambda s: len(s)>3)) 筛选过滤 语法: filter(function,iterable) 根据条件去筛选 lst = [{'id': 1, 'name': 'alex', 'age': 18}, {'id': 1, 'name': 'wusir', 'age': 17}, {'id': 1, 'name': 'taibai', 'age': 16}, ] ls = filter(lambda e: e['age'] > 16, lst) print(list(ls) 结果: [{'id': 1, 'name': 'alex', 'age': 18}, {'id': 1, 'name': 'wusir', 'age': 17}] 映射函数 map map(function,iterable) 可以对可迭代对象中的每个元素进行映射 lst1 = [1, 2, 3, 4, 5] lst2 = [2, 4, 6, 8, 10] print(list(map(lambda x, y: x + y, lst1, lst2))) 结果: [3, 6, 9, 12, 15] reduce 累积算法 from functools import reduce def func(x, y): return x * 10 + y 第一次的时候 x是1 y是2 x乘以10就是10,然后加上y也就是2最终结果是12然后临时存储起来了 第二次的时候x是临时存储的值12 x乘以10就是 120 然后加上y也就是3最终结果是123临时存储起来了 第三次的时候x是临时存储的值123 x乘以10就是 1230 然后加上y也就是4最终结果是1234然后返回了 l = reduce(func, [1, 2, 3, 4]) print(l) l = reduce(lambda x,y:x*10+y,[1,2,3,4]) print(l) enumerate() 获取枚举对象 lst = ['alex','wusir','taibai'] for i,k in enumerate(lst): print('这是序号',i) print('这是元素',k) zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元祖, 然后返回由这些元祖组成的内容,如果各个迭代器的元素个数不一致,则按照长度最短的返回 拉链的意思 lst1 = [1,2,3] lst2 = ['a','b','c','d'] lst3 = (11,12,13,14,15) for i in zip(lst1,lst2,lst3): print(i) 结果: (1, 'a', 11) (2, 'b', 12) (3, 'c', 13) lst=[2,3,4,5] lst1=[3,4,5,6] print(list(map(lambda x,y:x+y,lst,lst1)))#[5, 7, 9, 11]map函数映射 from functools import reduce#reduce 累 算 lst=[2,3,4] print(reduce(lambda x,y:x*y,lst))#2*3*4 ==24 def foo(x): if x['age']>17: return x ls=[{'name':'哥哥','age':18},{'name':'哥哥','age':12}] print(filter(lambda x:x['age']>17,ls)) #没有用list 就是一个对象打印不出来<filter object at 0x0000000002417E80> fillter 筛选 print(list(filter(lambda x:x['age']>17,ls))) #这样才可以打印出来 lst=['asd','sdfdg','s'] print(sorted(lst,key=lambda x:len(x)))#按长度去排序,这是升序 dic={1:2,2:3} print(sorted(dic.values(),reverse=True)) #按键去排序 倒序 装饰器 import time def inner(f):#----装饰器函数 def waper(*args,**kwargs): s=time.time() f(*args,**kwargs)#---被装饰 函数 d=time.time() print(s-d) return waper @inner#@inner# def func(*args,**kwargs): print('a',args) # func=inner(func) func(1,2,3,4)