python 匿名函数
三元表达式
name=input('姓名>>: ') res='SB' if name == 'python' else 'World' print(res)
列表推导式
语法 [expression for item1 in iterable1 if condition1 for item2 in iterable2 if condition2 ... for itemN in iterableN if conditionN ] 解析 res=[] for item1 in iterable1: if condition1: for item2 in iterable2: if condition2 ... for itemN in iterableN: if conditionN: res.append(expression)
test_list=[] for i in range(10): test_list.append('numbers--%s' %i) testp_list=['numbers--%s' %i for i in range(10)]
生成器表达式
把列表推导式的[]换成()就是生成器表达式
ps:一次只产生一个值在内存中,省内存
ls=('numbers--%s' %i for i in range(5)) print(ls) print(next(ls)) #因chicken可迭代,因而可以转成列表 print(list(ls))
匿名函数
匿名就是没有名字的函数与函数有相同的作用域,但匿名意味着引用计数为0即使用一次就释放
非匿名函数 def func(x,y,z=1): return x+y+z #匿名函数 lambda x,y,z=1:x+y+z