Python-有名匿名函数、列表推导式

介绍:

匿名函数:    匿名函数用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤,节省开辟空间。

列表推导式:

有名函数

#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]

列表推导式

#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+列表推导式的坑

#主意: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函数值传参  
原文地址:https://www.cnblogs.com/yangzhizong/p/10348158.html