匿名函数
- 不需要使用def来定义函数
- 没有具体的名称
- 使用lambda来定义函数
- 语法结构:lambda par1,par2,…parn:expression
实例
#冒号前面是参数,冒号后面是表达式,也是所要返回的结果
g = lambda x:x**2
g(2)
map函数
map()方法会将一个函数映射到序列的每一个元素上,生成新序列,包含所有函数返回值。 笼统的讲,序列里的每一个元素都被当做x变量,放到一个函数f(x)里,其结果是f(x1)、f(x2)、f(x3)…组成的新序列
- map函数返回的是迭代器
- 调用方法:
map(function,list_input)
function代表函数
list_input 代表输入序列
实例
#定义一个列表
items = [1,2,3,4,5,6]
def f(x):
return x**2
map(f,items)
list(map(f,items))
reduce函数
定义:
在迭代序列的过程中,先把前两个元素(只能两个)传给函数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数。依次类推,就像求1-100累加和
- reduce函数不是内置函数,所以要导入第三方库
- reduce函数不可直接使用
- reduce(function,iterable)
function:代表函数
iterable:序列
实例
from functools import reduce
def f(x,y):
return x + y
items = [1,2,3,4,5,6,7,8,9,10]
result = reduce(f,items)
result
#求1-100累加和
items = range(1,101)
result = reduce(f,items)
result
filter函数
- 用于过滤序列,过滤掉不符合条件的元素,返回有符合条件元素组成的序列
- 将function依次作用于sequnce的每个item,即function(item),将返回值为True的item组成一个list/string/tuple(取决于sequnce的类型)
- python3统一返回迭代器
实例
filter(lambda x:x%2==0,range(21))
list(filter(lambda x:x%2==0,range(21)))
items = [1,2,3,4,'3263','chen','-34.56',45.8]
list(filter(lambda x:1 if isinstance(x,int)else 0,items))
或者:
def int_num(x):
if isinstance(x,int):
return True
else:
return False
list(filter(int_num,items))