内置函数的整理:
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)