python匿名函数 高阶函数 内置函数 文件操作

1.匿名函数

匿名就是没有名字
def func(x,y,z=1):
    return x+y+z

匿名
lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字 func=lambda x,y,z=1:x+y+z func(1,2,3) #让其有名字就没有意义

#有名函数与匿名函数的对比
有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能

匿名函数:一次性使用,随时随时定义

应用:map,reduce,filter

语法格式:
匿名函数 形参1,形参2,:处理逻辑

# !/usr/bin/python env
# coding:utf-8
from functools import reduce

print(list(map(lambda x: x ** 2, range(11)))) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print(reduce(lambda x, y: x * y, range(1, 11))) # 3628800

print(list(filter(lambda x: x % 2 == 0, range(11)))) # [0, 2, 4, 6, 8, 10]

print(list(i for i in range(11) if i % 2 == 0)) # [0, 2, 4, 6, 8, 10]
map reduce filter语法格式:

关键字(函数,可迭代对象)
map 依次将可迭代对象里元素传入函数中进行逻辑处理,并输出结果
reduce 将可迭代对象里元素1,元素2传入函数中进行逻辑处理,再将结果和元素3再传入函数中进行逻辑处理,依次类推,最终输出结果
filter 依次对迭代对对象中每个元素进行判定是否符合函数条件,返回TRUE或者FALSE,将返回值是True的元素输出

猜你喜欢

转载自www.cnblogs.com/icemonkey/p/10430668.html