#匿名函数和内置函数#匿名函数定义:为了解决那些功能很简单的需求而设计的一句话函数 lambda 一行必须写完
lxx=lambda x,y:x+yprint(lxx(1,2))#匿名函数真的可以匿名#练习: 求最大的key值是dic={'x':1,'y':3}# def func(key):# return dir[key]print(max(dic,key=lambda k:dic[k]))#未使用函数名也可以调用#可以用到的内置函数函数有:max,min,sorted,filter(开始的个数和结束的个数不一样) map#面试题#1d=lambda p:p*2t=lambda p:p*3x=2x=d(x)x=t(x)x=d(x)print(x) #24#现在有两个元组((‘a'),('b') ) ,(('c'),('d')) 请使用python中的匿名函数生成列表[{'a':'c'},{'b','d'}]x1=(('a'),('b'))x2=(('c'),('d')) #可以使用内置函数zipx3=(zip(x1,x2))# def func(tup):# return {tup[0]:tup[1]} 保险起见先写出函数再转化为匿名函数# x4=map(func,x3)x4=map(lambda tup:{tup[0]:tup[1]},x3)x5=list(x4)print(x5)# for i in x4:# print(i) #再把元组弄出字典就好了#******************************一句话实现print(list(map(lambda tup:{tup[0]:tup[1]},zip(x1,x2))))#第三题:以下代码的输出是什么def lxx(): return [lambda x:i*x for i in range(4)] #应该想到生成器表达式 # return [lambda x:i*x ,lambda x:i*x, lambda x:i*x ,lambda x:i*x ]print([m(2) for m in lxx()])#结果:[6,6,6,6]内置函数:#55个#带key的有:map,max,filter,sorted,min其他:input,print,type,hash,open,import,dirstr类型的代码执行:eval,exec数字:bool,int,float,abs,divmod,min,max,sum,round,pow序列--列表和元祖相关的:list,tuple序列--字符串相关的:str,bytes,repr序列:reversed,slice数据集合--字典和集合:dect,set,frozenset数据集合:len,sorted,enumerate,zip,filter,map