Python-有名匿名函數、列表推導式

介紹:app

匿名函數:    匿名函數用lambda關鍵詞能建立小型匿名函數。這種函數得名於省略了用def聲明函數的標準步驟,節省開闢空間。函數

列表推導式:spa

 

有名函數code

#1.有名函數(初始)
def square(x):
    return x**2
res=map(square,[1,2,3,4,5])
print(res) #<map object at 0x007193B0> 是一個生成器對象,a.__next__()取值
print(list(res)) #[1, 4, 9, 16, 25]

匿名函數對象

#2.匿名函數(匿名函數改進)
# res=map(lambda x:x**2,[1,2,3,4,5])
# print(res) #<map object at 0x020936B0>
# print(list(res)) #[1, 4, 9, 16, 25]

列表推導式blog

#3.實際工做中,建議使用——列表生成式改進
l=[]
def square(x):
    l.append(x**2)

for i in [1,2,3,4,5,6]:
    square(i)

print(l) #[1, 4, 9, 16, 25, 36]

注意點:lamdba+列表推導式的坑io

#主意:lambda+列表推導式的坑
res=[lambda x:i**2 for i in range(3)]
# res=[lambda x:i**2 for i in range(3)]
print(res[0](0)) # 結果4,[<function <listcomp>.<lambda> at 0x08757540>, <function <listcomp>.<lambda> at 0x087574F8>, <function <listcomp>.<lambda> at 0x087575D0>, <function <listcomp>.<lambda> at 0x08757660>, <function <listcomp>.<lambda> at 0x087576A8>]
# print(res[0](10)) #結果4,(10)至關因而爲lambda函數值傳參  
相關文章
相關標籤/搜索