欢迎访问宙启技术站
智能推送

Python中的map,reduce,filter和zip函数的作用和用法

发布时间:2023-06-19 12:11:42

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函数将多个可迭代对象一一对应打包成元组并返回可迭代对象。