在Python中定义了一些用于数据处理的函数,如filter()
和map()
等
》过滤函数filter()
filter() 函数用于对容器中的元素进行过滤处理
filter() 函数的语法如下:
filter(function, iterable)
参数 function 是一个提供过滤条件的函数,返回布尔值;参数 iterable 是容器类型的数据
解释:
在调用filter()函数时,iterable会被遍历,它的元素会被逐一传入function()函数中。
function()函数若返回True,则元素被保留;若返回False,则元素被过滤。
最后遍历完成,已保留的元素被放到一个新的容器数据中。
代码示例如下:
def f1(x):
return x>50 # 找出大于50的元素
data1 = [65,15,91,28,98,50,7,80,99]
filtered = filter(f1, data1) # 调用filter()函数
data2 = list(filtered) # 转换为列表
print(data2)
# 注意:filter()函数的返回值并不是一个列表,如果需要返回列表类型的数据,则还需要通过list()函数进行转换。
》映射函数map()
map() 函数用于对容器中的元素进行映射(或变换)
map() 函数的语法如下:
map(function,iterable)
参数function是一个提供变换规则的函数,返回变换之后的元素;参数iterable是容器类型的数据
代码示例如下:
def f1(x):
return x*2 # 变换规则乘以2
data1 = [65,15,91,28,98,50,7,80,99]
mapped = map(f1, data1) # 调用map()函数
data2 = list(mapped) # 转化为列表
print(data2)
# 在调用map()函数时,iterable会被遍历,它的元素被逐一传入function()函数中,在function()函数中对元素进行变换。
》lambda()
函数
在Python中使用lambda关键字定义匿名函数。lambda关键字定义的函数也被称为lambda()函数,定义lambda()函数的语法如下:
“参数列表”与函数的参数列表是一样的,但不需要用小括号括起来
lambda 参数列表:lambda体
lambda()函数与有名称的函数一样,都是函数类型
- 注意:lambda体部分不能是一个代码块,不能包含多条语句,只有一条语句,语句会计算一个结果并返回给lambda()函数,但与有名称的函数不同的是,不需要使用return语句返回
# 更改上面filter、map函数,简写如下:
data1 = [65,15,91,28,98,50,7,80,99]
filtered = filter(lambda x:(x>50), data1)
data2=list(filtered)
print(data2)
mapped = map(lambda x:(x*2), data1)
data3 = list(mapped)
print(data3)
'''
输出结果:
[65, 91, 98, 80, 99]
[130, 30, 182, 56, 196, 100, 14, 160, 198]
'''