表 14-6 中的函数都接受一个可迭代的对象,然后返回单个结果。这些函数叫“归约”函数、“合拢”函数或“累加”函数。其实,这里列出的每个内置函数都可以使用functools.reduce 函数实现,内置是因为使用它们便于解决常见的问题。此外,对 all 和
any 函数来说,有一项重要的优化措施是 reduce 函数做不到的:这两个函数会短路(即一旦确定了结果就立即停止使用迭代器)。

例子:

还有一个内置的函数接受一个可迭代的对象,返回不同的值——sorted。reversed 是生成器函数,与此不同,sorted 会构建并返回真正的列表。毕竟,要读取输入的可迭代对象中的每一个元素才能排序,而且排序的对象是列表,因此 sorted 操作完成后返回排序后的列表。我在这里提到 sorted,是因为它可以处理任意的可迭代对象。
当然,sorted 和这些归约函数只能处理最终会停止的可迭代对象。否则,这些函数会一直收集元素,永远无法返回结果。
归约函数与迭代处理
本文探讨了Python中处理可迭代对象的归约函数,如all、any及sorted,解释了它们如何简化常见问题的解决方案,并强调了这些函数在处理无限迭代器时的局限性。
12

被折叠的 条评论
为什么被折叠?



