Python入门高阶教程-高阶函数

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本文章来自腾讯云 作者:背雷管的小青年

想要学习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)]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值