Python中map 和filter 的使用
map()和filter()是Python中的两个内置的函数,它们都接受一个函数和一个或多个可迭代对象作为输入,然后返回一个新的可迭代对象。
map()函数将输入的可迭代对象的每个元素都传递给指定的函数,并返回一个包含函数应用结果的新迭代器。
下面是一个使用map()的例子:
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
squared = map(square, numbers)
print(list(squared)) # 输出:[1, 4, 9, 16, 25]在上面的例子中,我们定义了一个square()函数,它接受一个整数作为参数并返回其平方。然后我们使用map()函数将square()函数应用于numbers列表中的每个元素。最后,我们将结果转换为列表并打印出来。
filter()函数则将输入的可迭代对象的每个元素传递给指定的函数,然后返回一个包含使函数返回值为True的元素的新迭代器。
下面是一个使用filter()的例子:
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # 输出:[2, 4]在上面的例子中,我们定义了一个is_even()函数,它接受一个整数作为参数并返回一个布尔值,指示该数字是否为偶数。然后我们使用filter()函数将is_even()函数应用于numbers列表中的每个元素。最后,我们将结果转换为列表并打印出来。
它们的使用区别和运用场景如下:
map()函数适用于对可迭代对象的每个元素进行相同的操作,并将结果存储在一个新的迭代器中。运用场景:map()函数适用于对可迭代对象的每个元素进行相同的操作,例如将一个列表中的所有元素转换为另一个类型。例如,可以使用map()函数将一个字符串列表中的每个元素转换为大写字母:
strings = ['apple', 'banana', 'orange']
uppercase_strings = map(str.upper, strings)
print(list(uppercase_strings)) # 输出:['APPLE', 'BANANA', 'ORANGE']filter()函数适用于从可迭代对象中选择满足特定条件的元素。运用场景:filter()函数适用于从可迭代对象中选择满足特定条件的元素,例如从一组数字中过滤出大于给定值的数字。例如,可以使用filter()函数过滤出一个数字列表中大于3的数字:
numbers = [1, 2, 3, 4, 5]
filtered_numbers = filter(lambda x: x > 3, numbers)
print(list(filtered_numbers)) # 输出:[4, 5]总结:
map()函数适用于对可迭代对象的每个元素进行相同的操作,将结果存储在一个新的迭代器中。filter()函数适用于从可迭代对象中选择满足特定条件的元素,返回一个包含满足条件的元素的新迭代器。需要注意的是,在Python 3中,map()和filter()函数返回的都是迭代器对象,因此在使用时需要将其转换为列表或其他类型才能查看结果。
读者评论
评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。