Python中的map()函数与lambda()函数

用法map(function, iterable, …)
参数function: 传的是一个函数名,可以是python内置的,也可以是自定义的。
参数iterable :传的是一个可以迭代的对象,例如列表,元组,字符串…


最重要的还是功能啦!
功能 将iterable中的每一个元素执行一遍function


栗子1:

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:
在这里插入图片描述
代码:

def f(x):
    return x*x
print(list(map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])))   # Python中map无法直接显示,需要加list

结果为: [1, 4, 9, 16, 25, 36, 49, 64, 81]


栗子2: 首字母大写,其余小写

输入:[‘adam’, ‘LISA’, ‘barT’]

方法one:
利用 ---->(str).capitalize()

def format_name(s):
    return s.capitalize()

print(list(map(format_name, ['adam', 'LISA', 'barT'])))

方法two:
利用---->切片和字符串拼接

def format_name(s):
    return s[0].upper() + s[1:].lower()

print(list(map(format_name, ['adam', 'LISA', 'barT'])))

为了增强可读性:

def format_name(s):
    return s[0].upper() + s[1:].lower()

L1 = ['adam', 'LISA', 'barT']
L2 = list(map(format_name, L1))
print(L2)

结果为: [‘Adam’, ‘Lisa’, ‘Bart’]


思维拓展:

lambda函数是Python的内置函数,其功能主要是实现匿名函数的目的。匿名函数的优点就是简洁、轻量化。匿名函数无需起名,用完即可被回收,节约资源。

lambda函数的形式为:
(单参数)lambda x:x*2,(多参数)lambda x,y : x+y
其中,冒号左边的x、y为参数,冒号右边的为函数体

栗子1: 求两列表之和

def add_list(x, y):
    return x + y

list_num1 = [1, 2, 3, 0, 8, 0, 3]
list_num2 = [1, 2, 3, 4, 6.6, 0, 9]
print(list(map(add_list, list_num1, list_num2)))

结果为: [2, 4, 6, 4, 14.6, 0, 12]

lambdamap处理之后有:

list_num1 = [1, 2, 3, 0, 8, 0, 3]
list_num2 = [1, 2, 3, 4, 6.6, 0, 9]
print(list(map(lambda x, y: x+y, list_num1, list_num2)))

结果为: [2, 4, 6, 4, 14.6, 0, 12]


大家加油!

学习网址:https://www.imooc.com/code/6049
https://blog.csdn.net/weixin_43097301/article/details/82936777
https://blog.csdn.net/adobemomo/article/details/82733642

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值