python和pytorch中的lambda()和map()

本文详细介绍了Python中的lambda函数和map函数,通过实例展示了它们的使用方法和应用场景。lambda函数提供了一种简洁的定义匿名函数的方式,减少代码冗余,提高可读性。map函数则用于对序列进行映射操作,结合lambda可方便地处理列表或其他序列数据。文章还列举了多个实际例子,包括计算平方、过滤、排序和列表元素相加等,帮助读者深入理解这两个函数的用法。

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

这两个函数在一些大型网络中经常联合在一起使用,我经常会用到,每次看了就懂了。然后下次遇到又忘了,然后还要再来搜,浪费时间。所以这次打算按照自己的理解和别人的例子,一块写在一个博客里,以后就忘记了就可以直接弄过来看。

一、lambda函数

举个小例子
先用普通的def函数写一个函数

def sq(x):
    return x*x
map(sq,[y for y in range(10)])

然后再用lambda和map一起实现上个def函数

map(lambda x: x*x,[y for y in range(10)])

从这个简单的例子,我们可以看出,用lambda函数首先减少了代码的冗余,其次,用lambda函数,不用费神地去命名一个函数的名字,可以快速的实现某项功能,最后,lambda函数使代码的可读性更强,程序看起来更加简洁。

从上面这个简单的例子,也可以看出来lambda函数的语法是唯一的,其形式如下:

lambda argument_list:expersion
  1. argument_list表示参数列表
  2. expersion 函数表达式

1.1 lambda函数的用法

(1)直接赋给一个变量,然后再像一般函数那样调用

c=lambda x,y,z:x*y*z
c(2,3,4)

输出:24

当然,也可以在函数后面直接传递实参

(lambda x:x**2)(3)
输出:9

(2)将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用,下面举例说明。

fliter(lambda x:x%3==0,[1,2,3,4,5,6])

输出:[3,6]
squares = map(lambda x:x**2,range(5)
print(lsit(squares))
[0,1,4,9,16]

与sorted函数结合使用,比如:创建由元组构成的列表:

a=[('b',3),('a',2),('d',4),('c',1)]

按照第一个元素排序

sorted(a,key=lambda x:x[0])
输出:[('a',2),('b',3),('c',1),('d',4)]

按照第二个元素排序 .

sorted(a,key=lambda x:x[1])
[('c',1),('a',2),('b',3),('d',4)]

(3)求两个列表元素的和

a = [1,2,3,4]
b = [5,6,7,8]
print(list(map(lambda x,y:x+y, a,b)))

输出:[6,8,10,12]

二、map函数

描述
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map() 函数语法:
map(function, iterable, …)

参数
function – 函数
iterable – 一个或多个序列

先用def写一个函数

def square(x) : # 计算平方数
return x ** 2

使用map写一个

map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
输出:[1, 4, 9, 16, 25]
map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
输出:[1, 4, 9, 16, 25]

提供了两个列表,对相同位置的列表数据进行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
输出:[3, 7, 11, 15, 19]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值