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

Pythonmap和filter函数的用法

发布时间:2023-06-13 01:37:32

Python中的map和filter函数都是高级函数,常用于列表处理。它们能够提高代码编写效率,简化代码逻辑,让数据处理更加高效。下面将分别讲解map和filter函数的用法。

一、 map函数

map函数的作用是将一个函数作用于一个可迭代对象的每个元素上,并返回一个新的可迭代对象。

语法:map(function, iterable, ...)

参数:

function:映射函数,即对迭代器中每个元素进行操作的函数。可以有多个、除了 个以外,其它参数都是可选的。

iterable:一个或多个序列,表示要被映射的数据。可以是列表、元组、集合等可迭代对象。

实例:

例1:将列表中每个元素都平方,并输出新的列表。

lst = [1, 2, 3, 4, 5]

new_lst = list(map(lambda x: x**2, lst))

print(new_lst)  # [1, 4, 9, 16, 25]

例2:将两个等长列表对应位置的元素相加,并输出新的列表。

lst1 = [1, 2, 3, 4, 5]
lst2 = [5, 4, 3, 2, 1]

new_lst = list(map(lambda x, y: x + y, lst1, lst2))

print(new_lst)  # [6, 6, 6, 6, 6]

二、 filter函数

filter函数的作用是过滤序列,返回一个符合条件的新列表。其返回值是True或False。

语法:filter(function, iterable)

参数:

function:过滤函数,即对于iterable中每个元素进行判断的函数。只能有一个参数,返回值是True或False。

iterable:一个序列,表示要被过滤的数据。可以是列表、元组、集合等可迭代对象。

实例:

例1:将列表中的奇数过滤出来,并输出新的列表。

lst = [1, 2, 3, 4, 5]

new_lst = list(filter(lambda x: x%2 == 1, lst))

print(new_lst)  # [1, 3, 5]

例2:将列表中的不满足条件的元素过滤出来,并输出新的列表。

lst = ['apple', 'banana', 'pear', 'orange', 'watermelon']

new_lst = list(filter(lambda x: len(x)>5, lst))

print(new_lst)  # ['banana', 'orange', 'watermelon']

总结:

map和filter函数都是对可迭代对象进行操作,返回一个新的可迭代对象。map函数用于对可迭代对象中的元素进行操作并返回一个新的列表;而filter函数用于过滤掉不符合条件的元素并返回一个新的列表。当我们在处理列表或者集合时,这两个函数可以有效地提高代码的简洁性和效率。