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

Python高阶函数:filter()和map()的使用

发布时间:2023-05-20 04:14:20

Python中的高阶函数是指那些以函数作为参数或返回值的函数。filter()和map()就是两个常用的高阶函数。

filter()可以筛选出满足条件的元素,返回一个迭代器。map()可以对可迭代对象中的每个元素执行一个函数,返回一个新列表。

以下是filter()和map()的使用方法和示例:

filter()

filter()的语法如下:

filter(function, iterable)

其中,function是一个用来筛选元素的函数,iterable是一个可迭代对象。

function函数需要一个参数,表示被筛选的元素。如果该函数返回True,则该元素会被保留,否则会被过滤掉。

示例1:筛选出偶数

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

上述代码中,lambda函数用于判断数字是否为偶数,并通过filter()筛选出偶数。

示例2:筛选出英文元音字母

letters = ['a', 'b', 'c', 'd', 'e']
vowel_letters = list(filter(lambda x: x in ['a', 'e', 'i', 'o', 'u'], letters))
print(vowel_letters)  # ['a', 'e']

上述代码中,lambda函数用于判断字母是否为英文元音字母,并通过filter()筛选出元音字母。

map()

map()的语法如下:

map(function, iterable)

其中,function是一个接受一个参数的函数,iterable是一个可迭代对象。

map()会对iterable中的每个元素都执行function函数,并返回一个新的列表,列表中的元素是经过function函数处理后的结果。

示例1:将字符串列表转换为大写

strings = ['hello', 'world']
upper_strings = list(map(lambda x: x.upper(), strings))
print(upper_strings)  # ['HELLO', 'WORLD']

上述代码中,lambda函数用于将字符串转换为大写,并通过map()将列表中的每个字符串都转换为大写。

示例2:将数字列表中的元素加1

numbers = [1, 2, 3, 4, 5]
new_numbers = list(map(lambda x: x+1, numbers))
print(new_numbers)  # [2, 3, 4, 5, 6]

上述代码中,lambda函数用于将数字加1,并通过map()对列表中的每个元素都加1。

总结:

filter()和map()是常用的高阶函数,它们经常被用来快速处理列表或其他可迭代对象中的元素。要使用filter()和map(),我们需要定义一个过滤或转换函数,并将其作为参数传递给这些函数。