《Pyhon入门:07 map与filter函数的常用用法》

Pyhon入门之map与filter函数常用用法

    • [一、 map函数的常用用法](#一、 map函数的常用用法)
      • [1. 基本用法](#1. 基本用法)
      • [2. 使用lambda表达式](#2. 使用lambda表达式)
      • [3. 多个可迭代对象](#3. 多个可迭代对象)
      • [4. 使用自定义函数](#4. 使用自定义函数)
      • [5. 返回迭代器](#5. 返回迭代器)
      • [6. 与filter函数结合使用](#6. 与filter函数结合使用)
    • [二、 filter函数的常用用法](#二、 filter函数的常用用法)

一、 map函数的常用用法

1. 基本用法

map()函数是Python内置的一个函数,用于将一个函数应用于可迭代对象的每个元素,并返回一个迭代器。

python 复制代码
def square(n):
    return n * n

numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result))  # 输出: [1, 4, 9, 16, 25]

2. 使用lambda表达式

map()函数可以与lambda表达式一起使用,以简化代码。

python 复制代码
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x * x, numbers)
print(list(result))  # 输出: [1, 4, 9, 16, 25]

3. 多个可迭代对象

map()函数可以接受多个可迭代对象作为参数,并将函数应用于每个可迭代对象的对应元素。

python 复制代码
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()函数可以接受一个自定义函数作为参数,并将该函数应用于可迭代对象的每个元素。

python 复制代码
def add_one(n):
    return n + 1

numbers = [1, 2, 3, 4, 5]
result = map(add_one, numbers)
print(list(result))  # 输出: [2, 3, 4, 5, 6]

5. 返回迭代器

map()函数返回一个迭代器,而不是一个列表。这意味着你可以使用for循环来遍历结果,而不需要将其转换为列表。

python 复制代码
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()函数结合使用,以过滤可迭代对象中的元素。

python 复制代码
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() 函数的基本语法如下:

python 复制代码
filter(function, iterable)
  • function:判断函数,接收一个参数,返回布尔值,TrueFalse
  • iterable:可迭代对象。

下面是一个使用 filter() 函数的例子,过滤出列表中的所有偶数:

python 复制代码
def is_even(n):
    return n % 2 == 0

numbers = [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 函数)作为判断函数,例如:

python 复制代码
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() 函数的常用用法,包括使用判断函数和匿名函数作为参数,以及将过滤结果转换为列表。

相关推荐
Lyn_Li9 小时前
扫描 PDF 歪了怎么办?用 6 种检测方法做本地批量扶正(附开源工具)
python·pdf·ocr·tesseract·开源工具·文档处理·本地处理·扫描件纠偏
金銀銅鐵9 小时前
费马小定理
python·数学·算法
疋瓞13 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
如此这般英俊14 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
元Y亨H15 小时前
Python - FastAPI 全方位介绍
python·fastapi
error:(16 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
weigangwin17 小时前
LlamaIndex 第一次试用:别先写 RAG Demo,先验上下文合同
python·ai·agent·rag·检索·llamaindex·观测性
省四收割者17 小时前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
ai生成式引擎优化技术18 小时前
从知识连接到智能组织:WSaiOS认知网络的理论框架与系统设计摘要
网络·python·plotly·django·pygame
用户83562907805118 小时前
使用 Python 保护和取消保护 Excel 工作表和工作簿
后端·python