Python中的map,reduce,filter和zip函数的作用和用法
Python中的map、reduce、filter和zip函数都是Python内置函数,它们可以使代码更简洁高效。以下分别介绍它们的作用和用法:
一、map函数
map函数是Python中的一种内置函数,它的功能是将一个函数应用于一个可迭代对象的每个元素,并返回一个结果列表。
函数的定义格式为:
map(function, iterable, ...)
其中,function是一个映射函数,接受一个参数,并对其进行操作。可迭代对象iterable可以是一个列表、元组、字典或其他可迭代对象。
举个例子,将列表中的每个元素平方:
list1 = [1,2,3,4,5]
new_list = map(lambda x: x**2, list1)
print(list(new_list))
输出结果:
[1, 4, 9, 16, 25]
因为map函数返回的是一个迭代器,所以我们将迭代器转化为列表。
二、reduce函数
reduce函数是Python中的一个内置函数,它的功能是对一个可迭代对象的所有值进行累积操作。
函数的定义格式为:
reduce(function, iterable[, initializer])
其中,function是一个二元操作符,返回一个值。可迭代对象iterable可以是一个列表、元组、字典或其他可迭代对象。
举个例子,计算列表中所有元素的和:
list1 = [1,2,3,4,5]
from functools import reduce
sum = reduce(lambda x,y: x+y, list1)
print(sum)
输出结果:
15
其中,lambda函数对列表中的每两个元素进行相加, 次计算是1+2,得到3,然后用3和列表中的下一个元素进行相加……最后得到总和15。
三、filter函数
filter函数是Python中的一种内置函数,它的功能是从可迭代对象中筛选出满足条件的元素,并返回一个包含这些元素的迭代器。
函数的定义格式为:
filter(function, iterable)
其中,function是一个谓词函数,接受一个参数,并返回一个布尔值。可迭代对象iterable可以是一个列表、元组、字典或其他可迭代对象。
举个例子,筛选出一个列表中的偶数元素:
list1 = [1,2,3,4,5]
even_list = filter(lambda x: x%2==0, list1)
print(list(even_list))
输出结果:
[2, 4]
因为filter函数返回的是一个迭代器,所以我们将迭代器转化为列表。
四、zip函数
zip函数是Python中的一个内置函数,它的功能是将多个可迭代对象压缩成一个元组序列,并返回一个新的元组序列。
函数的定义格式为:
zip(*iterables)
其中,*iterables表示多个可迭代对象,可以是列表、元组、字典或其他可迭代对象。
举个例子,对多个列表进行压缩:
list1 = [1,2,3]
list2 = ["a","b","c"]
new_list = zip(list1, list2)
print(list(new_list))
输出结果:
[(1, 'a'), (2, 'b'), (3, 'c')]
因为zip函数返回的是一个迭代器,所以我们将迭代器转化为列表。
总结
Map,reduce,filter和zip函数是Python内置函数,都是将可迭代对象作为输入,并返回新的可迭代对象。
map函数将一组数据作为输入数据进行映射处理,将所得的结果组成一个可迭代对象输出。
reduce函数将一组数据的累积结果作为下一次迭代的输入,并最后将累积值返回。
filter函数从可迭代对象中筛选符合条件的对象,并返回一个可迭代对象。
zip函数将多个可迭代对象一一对应打包成元组并返回可迭代对象。
