map、filter和reduce函数都是Python中的内置函数,但是reduce函数从Python3开始移到了functools模块中,使用时需要从functools模块导入。
1、map(遍历函数)
map函数用于遍历序列。对序列中每个元素进行操作,最终获取新的序列。
map的语法格式如下:
map(function, iterable, ...)
function是要应用于可迭代对象每个元素的函数;
iteration 是要操作的第一个可迭代对象。可以传入多个可迭代对象,但必须以元组的形式放在iteration中
例如
list1 = [11, 22, 33]
new_list = map(lambda a: a+10, list1)
print(new_list.__ next__()) # 21
print(new_list.__ next__()) # 32
print(new_list.__ next__()) # 43
list1 = [11, 22, 33]
list2 = [1, 2, 3]
new_list = map(lambda a, b: a+b, list1, list2)
print(list(new_list)) # [12, 24, 36]
需要注意的是,map() 返回的是一个迭代器,因此如果你需要得到一个列表或其他可迭代对象,你需要使用 list() 等函数将其转换。
2、filter(筛选函数)
filter函数用于对序列中的元素进行筛选,最终获取符合条件的序列。
filter的语法格式如下:
filter(function, iterable)
function是一个用于测试每个元素的函数,返回一个布尔值;
iteration 是要操作的第一个可迭代对象。
例如
list1 = [11, 22, 33]
new_list = filter(lambda x: x > 20, list1)
print(list(new_list)) # [22, 33]