Pyhon入门之map与filter函数常用用法
- 一、 map函数的常用用法
- 1. 基本用法
- 2. 使用lambda表达式
- 3. 多个可迭代对象
- 4. 使用自定义函数
- 5. 返回迭代器
- 6. 与filter函数结合使用
- 二、 filter函数的常用用法
一、 map函数的常用用法
1. 基本用法
map()
函数是Python内置的一个函数,用于将一个函数应用于可迭代对象的每个元素,并返回一个迭代器。
def square(n):return n * nnumbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result)) # 输出: [1, 4, 9, 16, 25]
2. 使用lambda表达式
map()
函数可以与lambda
表达式一起使用,以简化代码。
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * x, numbers)
print(list(result)) # 输出: [1, 4, 9, 16, 25]
3. 多个可迭代对象
map()
函数可以接受多个可迭代对象作为参数,并将函数应用于每个可迭代对象的对应元素。
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [6, 7, 8, 9, 10]
result = map(lambda x, y: x + y, numbers1, numbers2)
print(list(result)) # 输出: [7, 9, 11, 13, 15]
4. 使用自定义函数
map()
函数可以接受一个自定义函数作为参数,并将该函数应用于可迭代对象的每个元素。
def add_one(n):return n + 1numbers = [1, 2, 3, 4, 5]
result = map(add_one, numbers)
print(list(result)) # 输出: [2, 3, 4, 5, 6]
5. 返回迭代器
map()
函数返回一个迭代器,而不是一个列表。这意味着你可以使用for
循环来遍历结果,而不需要将其转换为列表。
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * x, numbers)
for num in result:print(num) # 输出: 1, 4, 9, 16, 25
6. 与filter函数结合使用
map()
函数可以与filter()
函数结合使用,以过滤可迭代对象中的元素。
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * x, filter(lambda x: x % 2 == 0, numbers))
print(list(result)) # 输出: [4, 16]
以上是map()
函数的常用用法。
二、 filter函数的常用用法
Python filter()
函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list()
函数。
filter()
函数的基本语法如下:
filter(function, iterable)
function
:判断函数,接收一个参数,返回布尔值,True
或False
。iterable
:可迭代对象。
下面是一个使用 filter()
函数的例子,过滤出列表中的所有偶数:
def is_even(n):return n % 2 == 0numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(is_even, numbers)
print(list(even_numbers))
在上面的代码中,is_even()
函数是一个判断函数,用于判断一个数是否为偶数。filter()
函数将 is_even()
函数和 numbers
列表作为参数,过滤出 numbers
列表中的所有偶数,返回一个迭代器对象。最后,使用 list()
函数将迭代器对象转换为列表。
另外,filter()
函数也可以使用匿名函数(lambda 函数)作为判断函数,例如:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))
在上面的代码中,lambda x: x % 2 == 0
是一个匿名函数,用于判断一个数是否为偶数。filter()
函数将这个匿名函数和 numbers
列表作为参数,过滤出 numbers
列表中的所有偶数,返回一个迭代器对象。最后,使用 list()
函数将迭代器对象转换为列表。
以上是 Python filter()
函数的常用用法,包括使用判断函数和匿名函数作为参数,以及将过滤结果转换为列表。