专业编程基础技术教程

网站首页 > 基础教程 正文

两分钟掌握Python 中的管道

ccvgpt 2025-02-11 11:10:06 基础教程 24 ℃

什么是管道?

Python 中的管道是一种用于构建处理数据的一系列操作或函数的方法。每个操作的输出都会送到下一个操作中,最终导致最终结果。想象一下,一系列连接的管道,数据流经其中,在每个阶段进行转换。

有一个数字列表,并且想要:

两分钟掌握Python 中的管道

  1. 删除奇数
  2. 将每个数字乘以 10
  3. 将每个数字加 5
  4. 计算平均值

可以为每个操作编写一个循环,创建新列表并迭代它们。然而,这种方法不是很有效。它使用额外的内存和多个循环,使代码的可读性降低且容易出错。

更好的方法是使用管道。这使可以在没有额外列表或循环的情况下链接操作。Python 的内置 mapfilter 函数非常适合此。它们将函数应用于可迭代对象的每个项。您还可以使用 sumlen 进行计算。下面是使用管道的上述任务的更高效版本:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
average = sum(map(lambda n: n + 5, map(lambda n: n * 10, filter(lambda n: n % 2 == 0, numbers)))) / len(numbers)
print(average)

为获得更好的可读性,可使用库中的 pipe toolz 函数。 pipe 取初始值和一系列函数,依次应用每个函数。这使得代码更具可读性和优雅性

from toolz import pipe
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
average = pipe(numbers, 
               filter(lambda n: n % 2 == 0), 
               map(lambda n: n * 10), 
               map(lambda n: n + 5), 
               lambda x: sum(x) / len(x))
print(average)

Tags:

最近发表
标签列表