使用Python reduce()的方法

114 阅读1分钟

Python提供了3个有用的全局函数,我们可以用它来处理集合。map(),filter()reduce()

提示:有时列表理解更有意义,通常被认为是更有pythonic意义的

reduce() 是用来从一个序列中计算出一个值,就像一个列表。

例如,假设你有一个存储为元组的费用列表,你想计算每个元组中一个属性的总和,在这种情况下,就是每个费用的成本。

expenses = [
    ('Dinner', 80),
    ('Car repair', 120)
]

你可以用一个循环来迭代它们。

sum = 0
for expense in expenses:
    sum += expense[1]

print(sum) # 200

或者,你可以使用reduce() ,将列表减少到一个单一的值。

from functools import reduce

print(reduce(lambda a, b: a[1] + b[1], expenses)) # 200

reduce() 像 和 一样,默认情况下是不可用的。你需要从标准库模块 中导入它。map() filter() functools