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(),我们需要定义一个过滤或转换函数,并将其作为参数传递给这些函数。
