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

Python中的高阶函数:map和filter

发布时间:2023-05-23 01:15:10

高阶函数是指那些接受函数作为参数或返回函数作为结果的函数。在Python中,map和filter就是两个非常常见的高阶函数。

map函数:

map函数接受一个函数和一个可迭代对象作为参数,返回一个新的可迭代对象,其中每个元素都是在原可迭代对象的每个元素上应用了函数后的结果。

示例:

my_list = [1, 2, 3, 4, 5]
result = map(lambda x: x**2, my_list)
print(list(result)) # [1, 4, 9, 16, 25]

filter函数:

filter函数接受一个函数和一个可迭代对象作为参数,返回一个新的可迭代对象,其中每个元素都是在原可迭代对象的每个元素上应用了函数后,返回值为True的结果。

示例:

my_list = [1, 2, 3, 4, 5]
result = filter(lambda x: x%2 == 0, my_list)
print(list(result)) # [2, 4]

在实际应用中,map和filter十分常用,特别是在数据处理中。不过,还需要注意一些细节。比如,在Python 3中,map和filter返回的是一个迭代器,需要用list函数将其转换成列表。另外,如果map中的函数返回值是None,则该元素会被省略;如果filter中的函数返回值是空,则该元素会被过滤掉。 所以,在使用map和filter时,需要注意函数的返回值。