1. 程式人生 > >python-->匿名函數

python-->匿名函數

元表 pri %s ssi list -- 即使 ble lambda

三元表達式

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

python-->匿名函數