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