Python碎片日记02——zip()、lambda表达式、map()

本文介绍了Python中的zip函数,展示了如何并行遍历序列并构造字典。接着,探讨了lambda表达式,解释了其作为匿名函数的特点和使用场景。最后,讲解了map函数的应用,包括如何对序列进行映射操作,并提到了与lambda的结合使用。

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

并行遍历zip

在基本运算中,zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对——摘自《python学习手册》P354,电子页码387

##zip的用法
a = [1,2,3]
b = [3,4,5]
list(zip(a,b))

输出结果

[(1, 3), (2, 4), (3, 5)]

zip可以像range一样进行迭代:

for (x,y) in zip(a,b):
    print(x,y,'--',x+y)

输出结果

1 3 -- 4
2 4 -- 6
3 5 -- 8

如果是多个长度不等的序列进行zip,则会以最短的序列长度为准截断所得到的元组。

zip可以用于构造字典,并且十分方便

#zip用于构造字典
keys = ['a','b','c']
vals = [1,2,3]
D = dict(zip(keys,vals))

输出结果

{'a': 1, 'b': 2, 'c': 3}

lambda表达式

这个表达式创建了一个之后能够调用的函数,但是它返回了一个函数而不是将这个函数赋值给一个变量名,因此也叫匿名函数,常以一种行内进行函数定义的形式使用,或用作推迟执行一些代码。——摘自《python学习手册》P483,电子页码516
形式如下:

lambda arg1,arg2,...,argN : expression using args
  • lambda是一个表达式,不是一个语句:可以出现在不允许def出现的地方,可以选择性地赋值给一个变量名,将函数作为结果返回。
  • lambda主体是一个单个的表达式,而不是一个代码块:通常功能要比def小,限制程序的嵌套。lambda能实现的def都可以实现,但有时lambda会更简洁,简化代码。

lambda和def实现相同效果:

将结果赋值给一个变量名

def func(x,y):return x + y
f = lambda x,y:x + y
func(2,3),f(2,3)
(5, 5)

此外,lambda也支持函数含默认参数,此处例子略

map映射

map函数会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含所有函数调用结果的一个列表——摘自《python学习手册》P489,电子页码522
map的输入函数可以是自定义函数:

a = [1,2,3]
def inc(x):return x + 10
list(map(inc,a))
[11, 12, 13]

也可以是自带函数、多输入:

a = [1,2,3]
b = [3,4,5]
list(map(pow,a,b))
[1, 16, 243]

也常和lambda表达式一起用:

a = [1,2,3]
list(map((lambda x:x+3),a))
[4, 5, 6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值