Python中的匿名函数和zip函数(day07)

一、匿名函数

定义:指的是一类无须定义标识符【函数名】的函数或者子程序。
在python中定义匿名函数使用lambda来进行定义。
语法:
lambda 参数列表: 表达式

注意:使用lambda表达式时,参数可以有多个,用逗号“,”分隔,但是表达式只能有一个,即只能返回一个值。而且也不能出现其他非表达式语句(如for或while)

特点:
1.lambda后面的跟的只是一个表达式,结构体比def的简单
2.参数列表可以有多个参数,参数与参数之间使用逗号隔开
3.无须写return,表达式的结果就是该表达式的返回值
4.常用于高阶函数
优点:
1.结构简单
2.匿名函数没有名字无须担心函数名的冲突。

匿名函数的调用:
将lambda表达式赋值给一个变量,通过调用变量来调用我们的匿名函数。

# 常规函数
def func1(a,b):
    if a>b:
        return a
    else:
        return b
print(func1(10,20))

# 匿名函数
func2 = lambda a,b: a if a>b else b
print(func2)    # <function <lambda> at 0x00000000003C3E18>
print(type(func2))    # <class 'function'>
print(func2(10,20))    # 20

二、zip函数

zip(iter1,iter2,...)

功能:打包,将可迭代对象中对应位置的元素进行打包,
长度取决于最短的那个,返回zipobj打包好的对象,以迭代器的方式返回

list1 = [1,2,3,4]
list2 = ["a","b","c","d"]
zipobj1 = zip(list1,list2)
print(dict(zipobj1))    # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

list3 = [1,2,3,4]
list4 = ["a","b","c","d"]
list5 = ["a2","b2","c2"]
zipobj2 = zip(list3,list4,list5)
print(list(zipobj2))    # [(1, 'a', 'a2'), (2, 'b', 'b2'), (3, 'c', 'c2')]

zip(*zipobj)

解包,将之前打包的元素进行解包处理,以迭代器方式返回。

list1 = [1,2,3,4]
list2 = ["a","b","c","d"]
list3 = ["a2","b2","c2","d2"]
zipobj1 = zip(list1,list2,list3)
obj = zip(*zipobj1)
print(list(obj))    # [(1, 2, 3, 4), ('a', 'b', 'c', 'd'), ('a2', 'b2', 'c2', 'd2')]

list4 = [1,2,3,4]
list5 = ["a","b","c"]
list6 = ["a2","b2","c2","d2"]
zipobj2 = zip(list4,list4,list6)
obj = zip(*zipobj2)
print(list(obj))    # [(1, 2, 3), ('a', 'b', 'c'), ('a2', 'b2', 'c2')]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值