优草派  >   Python

Python内置函数之filter map reduce介绍

黄佳怡            来源:优草派

Python是一门高级编程语言,由于其简单易学、语法简洁、开发效率高等优点,近年来被广泛应用于数据分析、机器学习、Web开发等领域。Python内置函数是Python语言的重要组成部分,其中filter、map、reduce是Python内置函数中比较常用、也比较重要的三个函数,本文将从多个角度对这三个函数进行详细介绍。

一、filter函数

Python内置函数之filter map reduce介绍

filter函数是Python内置函数之一,用于过滤序列中的元素,返回一个满足条件的新序列。filter函数的基本语法为:

filter(function, iterable)

其中,function是一个函数,用于对序列中的每个元素进行判断,返回True或False;iterable是一个可迭代对象,如列表、元组、字符串等。filter函数会对iterable中的每个元素调用function函数,将返回True的元素放入新序列中返回。

例如,下面的代码使用filter函数过滤出列表中的偶数:

```python

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = filter(lambda x: x % 2 == 0, nums)

print(list(result)) # [2, 4, 6, 8, 10]

```

在上面的代码中,lambda函数用于判断列表中的每个元素是否为偶数,filter函数对nums中的每个元素调用lambda函数,将返回True的元素放入新列表result中。

二、map函数

map函数是Python内置函数之一,用于对序列中的每个元素进行操作,返回一个新序列。map函数的基本语法为:

map(function, iterable)

其中,function是一个函数,用于对序列中的每个元素进行操作;iterable是一个可迭代对象,如列表、元组、字符串等。map函数会对iterable中的每个元素调用function函数,将返回值放入新序列中返回。

例如,下面的代码使用map函数对列表中的每个元素进行平方操作:

```python

nums = [1, 2, 3, 4, 5]

result = map(lambda x: x ** 2, nums)

print(list(result)) # [1, 4, 9, 16, 25]

```

在上面的代码中,lambda函数用于对列表中的每个元素进行平方操作,map函数对nums中的每个元素调用lambda函数,将返回值放入新列表result中。

三、reduce函数

reduce函数是Python内置函数之一,用于对序列中的元素进行累积操作,返回一个结果。reduce函数的基本语法为:

reduce(function, iterable)

其中,function是一个函数,用于对序列中的元素进行累积操作;iterable是一个可迭代对象,如列表、元组、字符串等。reduce函数会对iterable中的每个元素调用function函数,将返回值累积起来返回。

例如,下面的代码使用reduce函数对列表中的元素进行累加操作:

```python

nums = [1, 2, 3, 4, 5]

result = reduce(lambda x, y: x + y, nums)

print(result) # 15

```

在上面的代码中,lambda函数用于对列表中的元素进行累加操作,reduce函数对nums中的每个元素调用lambda函数,将返回值累积起来返回。

四、三个函数的比较

filter、map、reduce三个函数都是Python内置函数中比较常用、也比较重要的函数,它们的作用也不尽相同,下面对它们进行比较:

1. filter函数用于过滤序列中的元素,返回一个满足条件的新序列;map函数用于对序列中的每个元素进行操作,返回一个新序列;reduce函数用于对序列中的元素进行累积操作,返回一个结果。

2. filter、map、reduce三个函数都需要一个函数作为参数,用于对序列中的元素进行操作或判断。

3. filter、map、reduce三个函数都可以用lambda函数作为参数,简化代码。

4. filter、map、reduce三个函数返回的结果类型不同,filter函数返回一个序列,map函数返回一个序列,reduce函数返回一个结果。

五、总结

Python内置函数filter、map、reduce都是Python编程中比较常用、也比较重要的函数,它们可以用于对序列中的元素进行操作、过滤、累积等操作,提高了代码的简洁度和可读性。在实际开发中,需要根据具体需求选择合适的函数,灵活使用Python内置函数,提高开发效率。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。