Python3 map函数和filter函数详解
在Python3中,map函数和filter函数是两个常用的函数,它们可以对列表、元组等可迭代对象进行操作。本文将详细介绍map函数和filter函数的用法,并提供两个示例。
map函数
map函数可以对可迭代对象中的每个元素应用一个函数,并返回一个新的可迭代对象,其中包含应用函数后的结果。
以下是map函数的语法:
map(function, iterable, ...)
其中,function是要应用的函数,iterable是要操作的可迭代对象。
以下是一个使用map函数的示例:
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
squares = map(square, numbers)
print(list(squares))
在上面的代码中,我们定义了一个square函数,用于计算一个数的平方。然后,我们创建了一个包含5个数字的列表,并使用map函数将square函数应用于该列表中的每个数字。最后,我们将结果转换为列表并打印出来。
输出结果为:
[1, 4, 9, 16, 25]
filter函数
filter函数可以对可迭代对象中的每个元素应用一个函数,并返回一个新的可迭代对象,其中包含应用函数后返回True的元素。
以下是filter函数的语法:
filter(function, iterable)
其中,function是要应用的函数,iterable是要操作的可迭代对象。
以下是一个使用filter函数的示例:
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5]
evens = filter(is_even, numbers)
print(list(evens))
在上面的代码中,我们定义了一个is_even函数,用于判断一个数是否为偶数。然后,我们创建了一个包含5个数字的列表,并使用filter函数将is_even函数应用于该列表中的每个数字。最后,我们将结果转换为列表并打印出来。
输出结果为:
[2, 4]
示例
以下是两个使用map函数和filter函数的示例:
示例1:使用map函数计算平均数
numbers = [1, 2, 3, 4, 5]
average = sum(numbers) / len(numbers)
print(list(map(lambda x: x - average, numbers)))
在上面的代码中,我们创建了一个包含5个数字的列表,并使用map函数将每个数字减去平均数。最后,我们将结果转换为列表并打印出来。
输出结果为:
[-2.0, -1.0, 0.0, 1.0, 2.0]
示例2:使用filter函数筛选偶数
numbers = [1, 2, 3, 4, 5]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)
在上面的代码中,我们创建了一个包含5个数字的列表,并使用filter函数筛选出其中的偶数。最后,我们将结果打印出来。
输出结果为:
[2, 4]
总结
本文介绍了Python3中map函数和filter函数的用法,并提供了两个示例。在实际应用中,我们可以使用map函数和filter函数对可迭代对象进行操作,以便更好地实现我们的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3 map函数和filter函数详解 - Python技术站