filter
- 用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
- 返回一个迭代器对象
用法:
filter(func,list)
参数:
- func:对list每个item进行条件过滤的定义
- list:需要过滤的列表
例1:使用匿名函数
a = [1, 3, 5]
b = filter(lambda x: x < 5, a)
print(list(b))
例2:使用普通函数
a = [1, 3, 5]
def test(item):
if item < 5:
return True
b = filter(test, a)
print(list(b))
前面2个结果都是:
map
- 对循环,根据过滤条件是否符合要求的判断
用法:
map(func,list)
参数:
- func:对list每个item进行条件满足的判断
- list:需要过滤的列表
例1:使用匿名函数
a = [1, 3, 5]
b = map(lambda x: x + 5, a)
print(list(b))
c = map(lambda x: x < 5, a)
print(list(c))
例2:使用普通函数
a = [1, 3, 5]
# 判断是否小于5
def test(item):
if item < 5:
return True
else:
return False
# 加5
def add(item):
item += 5
return item
b = map(add, a)
print(list(b))
c = map(test, a)
print(list(c))
结果:
reduce
- 对参数序列中元素进行累积
用法:
reduce(func,list)
参数:
- func:对数据累加的函数
- list:需要处理的列表
例:
from functools import reduce
b = reduce(lambda x, y: x + y, range(101))
print(f'使用匿名函数:1到100相加:{b}')
def add(x,y):
return x+y
c = reduce(add, range(101))
print(f'使用普通函数:1到100相加:{c}')
结果: