python的内置函数(续)及匿名函数

一:内置函数(续)

1,zip (拉链方法)

函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回这些元组。如果各个迭代器的元素个数不一致,则返回的元组个数与最短的对象相同

l1 = [1,2,3,]
l2 = ['a','b','c',5]
l3 = ('*','**',(1,2,3))
for i in zip(l1,l2,l3):
    print(i)

# (1, 'a', '*')
# (2, 'b', '**')
# (3, 'c', (1, 2, 3))

2,filter (过滤),通过你的函数,过滤一个可迭代对象

def func(x):
    return x % 2 == 0
ret = filter(func,[1,2,3,4,5,6,7])
print(ret)
for i in ret:
    print(i)

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

def square(x):  # 计算平方数
    return x ** 2
ret=map(square, [1, 2, 3, 4, 5])  # 计算列表各个元素的平方
print(ret)
for i in ret:
    print(i)

二:匿名函数

定义匿名函数的关键字为lambda,其格式为:函数名 = lambda 参数 :返回值,它是为了解决那些功能很简单的需求而设计的一句话函数。

#这段代码
def func(n):
    return n**n
print(func(10))
 
#换成匿名函数
func = lambda n:n**n
print(func(10))

ps:

1,参数可以有多个,用逗号隔开;

2,匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值;

3,返回值和正常的函数一样可以是任意数据类型;

4,可以看出,匿名函数并不是真的不能有名字,匿名函数的调用和正常函数的调用一样。

三:匿名函数和内置函数应用举例

dic={'k1':10,'k2':100,'k3':30}
print(dic[max(dic,key=lambda k:dic[k])])

res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)

res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
    print(i)

 

posted @ 2018-04-04 19:55  扬帆起航111  阅读(161)  评论(0编辑  收藏  举报