# lambda表达式格式: lambda 参数列表:函数体
add_lambda =lambda x, y : x + y
#三元表达式print(1ifTrueelse2)# 1print(1ifFalseelse2)# 2#map函数
list1 =[1,2,3,4,5]
r =map(lambda x :2* x, list1)# r = [2,4,5,6,8,10]
r =map(lambda x, y : x + y,[1,2,3],[2,4,6])#filter 过滤器defis_not_none(s):return s andlen(s.strip())>0
list2 =[' ','',None,'hello']
result =filter(,list2)# ['hello']#reduce 函数from functools importreduce
f =lambda x, y : x + y
r =reduce(f,[1,2,3,4,5],10)# 25 初始化为10#列表推导式(根据已有的列表推导出新的列表)
list1 =[1,2,3,4,5,6]
f =map(lambda x: x + x,list1)
list2 =[i + i for i in list1]
list3 =[i **3for i in list1]# 有选择性的筛选
list4 =[i*i for i in list1 if i >3]#集合推导式{}#字典推导式
s ={"zhangsan":20,"lisi":15}# 拿出所有的key,并变成列表
s_key =[key for key,value in s.items()]# key 和value颠倒
s1 ={value :key for key, value in s.items()}#只拿出符合条件的值
s2 ={key:value for key,value in s.items()if key =="zhangsan"}# 闭包 :一个返回值是函数的函数import time
defruntime():defnow_time():print(time.time())return now_time
f = runtime()# 读出一个文件中带有某些关键字的行defmake_filter(keep):defthe_filter(file_name):file=open(file_name):
lines = line.readlines()file.close()
filter_doc =[i for i in lines if keep in i]return filter_doc
return the_filter
filter1 = make_filter("8")
filter_result = filter1("data.csv")print(filter_result)#装饰器、语法糖、注解#获取函数运行的时间import time
defruntime(func)defget_time():print(time.time())
func()return get_time
@runtimedefstudent_run():print("学生跑")
func()
student_run()# 如果函数有参数# 有不定长参数的装饰器defruntime(func)defget_time(*args):print(time.time())
func(*args)return get_time
@runtimedefstudent_run(i):print("学生跑")
func()
student_run(1)# 有不定长参数的装饰器defruntime(func)defget_time(**args):print(time.time())
func(**args)return get_time
@runtimedefstudent_run(i,j):print("学生跑")
func(1)
student_run()# 有不定长参数的装饰器defruntime(func)defget_time(*args):print(time.time())
func(*args)return get_time
@runtimedefstudent_run(i):print("学生跑")
func()
student_run(1)# 有不定长+有提示(关键字)参数的装饰器defruntime(func)defget_time(*arg,**args):print(time.time())
func(*arg,**args)return get_time
@runtimedefstudent_run(i,j):print("学生跑")
func(1)
student_run()