python语言基础-5 进阶语法-5.3 流式编程
声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。
5.3 流式编程(参考链接:https://www.zhihu.com/question/590628671/answer/2944126402)
Stream 是 Python 3.5 版本中引入的一个标准库(无须导包),它是对序列操作的一种抽象和延迟计算的方式。Stream 提供了一种流式计算的方式,将数据分成有限个段,逐个处理每个段,可以实现并行计算、惰性求值等高效的操作。
Stream 的主要用途是对集合类的操作,可以用来进行过滤、映射、排序、分组等一系列数据处理操作,以及进行聚合、统计等统计分析。
使用 Stream 进行集合操作可以使代码更简洁,可读性更高,还可以提高代码的可维护性和复用性。
下面是Stream的常用方法:
方法 | 功能 |
---|---|
filter() | 过滤集合中的元素,返回满足条件的元素集合 |
map() | 对集合中的元素进行映射,返回映射后的元素集合 |
sorted() | 对集合中的元素进行排序,可以指定排序方式和排序规则 |
distinct() | 去除集合中重复的元素 |
limit() | 限制集合中的元素数量 |
skip() | 跳过集合中的前 N 个元素 |
forEach() | 对集合中的每个元素执行操作,没有返回值 |
collect() | 将 Stream 转换为集合或其他数据结构 |
reduce() | 对集合中的元素进行归约操作,返回一个结果 |
count() | 统计集合中元素的数量 |
anyMatch() | 判断集合中是否存在满足条件的元素 |
allMatch() | 判断集合中所有元素是否都满足条件 |
noneMatch() | 判断集合中是否没有满足条件的元素 |
findFirst() | 返回集合中的第一个元素 |
python中的流式编程与java中的基本相同。下面是一些使用示例:
'''
filter()的使用示例
'''
# 创建一个包含整数的列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 使用 filter() 方法过滤出偶数
result = filter(lambda x: x % 2 == 0, numbers)# 转换为列表并输出结果
print(list(result)) # [2, 4, 6, 8, 10]'''
map()使用示例
'''
# 创建一个包含整数的列表
numbers = [1, 2, 3, 4, 5]# 使用 map() 方法对每个元素进行平方运算
result = map(lambda x: x ** 2, numbers)# 转换为列表并输出结果
print(list(result)) # [1, 4, 9, 16, 25]'''
链式操作示例
'''
# 创建一个包含整数的列表
numbers = [1, 2, 3, 4, 5]# 进行多个操作的组合,返回结果是一个 Stream 对象
result = (map(lambda x: x ** 2, numbers) # 对每个元素进行平方运算.filter(lambda x: x > 10) # 过滤出大于 10 的元素.sorted(reverse=True) # 对结果进行降序排序.limit(3) # 限制结果的数量为 3
)# 转换为列表并输出结果
print(list(result)) # [25, 16, 12]