下面的python教程说:
列表理解是lambda函数以及函数
map()
、filter()
和reduce()
的完全替代.
然而,它没有提到一个例子,一个列表理解如何可以代替reduce()
,我想不出一个例子,它应该如何成为可能.
请有人解释一下如何通过列表理解实现类似reduce的功能,或者确认这是不可能的?
下面的python教程说:
列表理解是lambda函数以及函数
map()
、filter()
和reduce()
的完全替代.
然而,它没有提到一个例子,一个列表理解如何可以代替reduce()
,我想不出一个例子,它应该如何成为可能.
请有人解释一下如何通过列表理解实现类似reduce的功能,或者确认这是不可能的?
理想情况下,列表理解就是创建一个新的列表.引用official documentation,
List comprehensions provide a concise way to create lists.个常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或iterable的每个成员的某些操作的结果,或者创建满足特定条件的这些元素的子序列.
而reduce
用于将iterable简化为单个值.引用functools.reduce
,
将两个自变量的函数从左到右累加到序列项上,直到reduce the sequence to a single value.
因此,列表理解不能作为reduce
的替代品.