函数进阶

函数的参数传递

参数定义与传递的基本顺序:
位置参数 关键字参数 可变数量参数

def test_fun(a,b=6,*c,**d);
print(‘a =’,a,’’,b=’,b,’,c=’,c,’,d=’,d)
test_fun(1)
a=1,b=6,c=(),d={}
test_fun(a =1,b=2,c =3)
a = 1,b =2,c =(),d ={‘c’:3}

lambda匿名函数

lambda表达式
用来声明匿名函数。也就是没有函数名字的临时使用的小函数。尤其适合需要一个函数作为另一个函数参数的唱和,也可以定义具名函数。

只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值。不允许包含复合语句,但是在表达式中可以调用其它函数。

sorted([‘abc’,‘afe’,‘acb’],key = lambda x:(x[0],x[2]))
[‘acb’,‘abc’,‘afe’]

map函数

会根据提供的函数对指定序列做映射。

第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。

def square (x):
return x ** 2
map (square, [1,2,3,4,5])
<map at 0x5815240>

def square (x):
return x ** 2
list(map (square, [1,2,3,4,5]))
[1,4,9,16,25]

map(lambda x: x**2,[1,2,3,4,5])
<map at 0X58077b8>

def add(x,y,z):
return x+y+z
list1 = [1,2,3]
list2 = [1,2,3,4]
list3 = [1,2,3,4,5]
res = map(add,list1,list2,list3)
print(list(res))
[3,6,9]

filter函数

用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
接受两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函进进行判断,然后返回F或者T,并将返回T的元素放大新列表中。

list(filter(None,[0,1,2,3,0,0]))
[1,2,3]

zip函数

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回有这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短对象相同,利用“号操作符,可以将元组解压为列表。

a = [1,2,3]
b = [4,5,6]
list(zip(a,b))
[(1,4),(2,5),(3,6)]

zip后元素可以转变为字典形式,但是前提是键是不可变类型。

enumerate函数

用于将一个可遍历的数据对象(如列表,元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。

seasons = [‘Spring’,‘Summer’,‘Fall’,‘Winter’]
list(enumerate(seasons,start=1)) #下标从1开始
[(1,‘Spring’),(2,‘Summer’),(3,‘Fall’),(4,‘Winter’)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值