import functools lis = [1, 3, 5, 6, 2,] print(functools.reduce(lambda a, b: a+b, lis)) print(functools.reduce(lambda a, b: a if a > b else b, lis))
import functools lis = [1, 3, 5, 6, 2,] print(functools.reduce(lambda a, b: a if a > b else b, lis))
import functools import operator lis = [1, 3, 5, 6, 2, ] # 求 list 和 print(functools.reduce(operator.add, lis)) # 求 list 乘 print(functools.reduce(operator.mul, lis)) # 字符串拼接 print(functools.reduce(operator.add, ["geeks", "for", "geeks"]))
reduce()存储中间结果,只返回最终的求和值。然而,accumulate()返回一个包含中间结果的迭代器。迭代器返回的最后一个数字是列表的总和。
import itertools print(list(itertools.accumulate(lis, lambda x, y: x+y))) # 输出结果 [1, 4, 9, 15, 17]
参考:
https://www.geeksforgeeks.org/reduce-in-python/