python之map、reduce函数小试

本文通过实例演示了Python中的map和reduce等高阶函数的应用,包括字符串规范化处理及数值乘积计算,并介绍了lambda匿名函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自廖雪峰老师教程中的一段代码

>>> def fn(x, y):
...     return x * 10 + y
...
>>> def char2num(s):
...     return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
...
>>> reduce(fn, map(char2num, '13579'))
13579

其中return{}[] 起到把字符串中的字符转化成int类型的作用。
{ }是字典,[ ]是list,{‘0’:0,…}[‘0’]取出来的就是数字0。

  • map函数是一个高阶函数,用于将函数作用于list的每一个元素上并生成一个新的list
  • reduce函数把函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

练习1
利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]。

>>> def da(x):
...     return(x[0].upper()+x[1:].lower())
... 
>>> map(da,['adam','LISa','barT'])
['Adam', 'Lisa', 'Bart']
>>> 

上网百度一下,发现python自带能实现该功能的函数capitalize(),用法为
str.capitalize()

>>> def da1(x):
...     return x.capitalize()
... 
>>> map(da1,['adam', 'LISA', 'barT'])
['Adam', 'Lisa', 'Bart']
>>> 

练习2

>>> def pord(x,y):
...     return x*y
>>> reduce(pord,[1,2,3,4])
24
>>>
lambda匿名函数

只能有一个表达式
当把lambda作为返回值时,调用所定义的函数时需要修改形式,如下:

>>> def build(x,y):
...     return lambda:x*x+y*y
... 
>>> build(2,3)
<function <lambda> at 0x1073692a8>
>>> build(2,3)()
13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值