python3 之 匿名函数 Be

一、语法:
    lambda 参数:方法(或三元运算) #最多支持3元运算

二、实例1:基础
1 #函数1:
2 a = lambda x:x*x
3 print(a(2))
4 
5 #函数2:
6 def myfun(x):
7     return x*x
8 print(myfun(2))
9 #上面2个函数等价,结果也相同

三、实例2:三元运算

#函数1:
func = lambda x,y:x+y if x>y else x-y       #lamdba最多支持3元运算,再复杂的判断不支持
print(func(3,2))

#函数2:
def myfun_1(x,y):
    if x>y:
        return x+y
    else:
        return x-y
print(myfun_1(3,2))

四、实例3:map函数结合使用,

    功能:列表里的元素实现自乘

#普通方法
a = [0,1,2,3,4,5,6,7,8,9]
print(a)
for index,i in enumerate(a):
    a[index] = i*i
print(a)

>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

#map方法
b = [0,1,2,3,4,5,6,7,8,9]
print(b)
print(list(map(lambda x:x*x,b)))

>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

note:map() 语法简介:

#map()会根据提供的函数对指定序列做映射
'''语法:
map(function,iterable,...)
参数:function——函数
    iterable—— 一个或多个序列
返回值:迭代器
作用:序列参数中的每一元素调用function函数,并将函数值返回给迭代器'''

#实例1:列表中的元素实现自乘

a = [0,1,2,3,4,5,6,7,8,9]
print(map(lambda x:x*x,a))              #<map object at 0x000002CC988D29E8>
print(list(map(lambda x:x*x,a)))        #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
原文地址:https://www.cnblogs.com/gengyufei/p/11316648.html