本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
本文章来自腾讯云 作者:背雷管的小青年
想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。
点击查看
# 通过 lambda 表达式计算一个数的平方
result = lambda x: x*x
print(result(5))
例如:计算两个数相乘
# 通过 lambda 表达式计算两个数相乘
result = lambda x, y: x*y
print(result(2, 5))
可能大家都明白 lambda 函数怎么用了吧。
相比起普通函数,为什么 lambda 表达式会更简单方便呢,我再举个例子:
# 输出10以内每个数乘以2:
# 定义函数
def new_func(number):
return number*2
# 一般函数写法
result_number = [new_func(number) for number in range(10)]
print(result_number)
# lambda 函数写法
result_number = list(map(lambda x: x*2, [number for number in range(10)]))
print(result_number)
# 输出结果
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 将[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 全部转换为字符
list(map(str, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))
# 输出
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# 猜猜这是在干嘛?
reduce(lambda x,y: x+y, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# 输出
45
你可能猜到了,做累加,对,没错!0~9数字的累加和,结果是45
reduce 函数的效果可以这样表示
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
再来张图,别说你还看不懂:
# 输出所有的偶数
list(filter(lambda x:x%2==0, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
# 输出
[2, 4, 6, 8]
sorted([2, 5, 7, 8, 1, -1], reverse=True)
# 输出
[8, 7, 5, 2, 1, -1]
举例2:将 (‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4) 比较每个元组的第一位数进行排序
list_number = [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
sorted(list_number, key=lambda x: x[0])
# 输出
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]