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

 

posted @ 2019-01-10 20:53  Coolc  阅读(197)  评论(0编辑  收藏  举报