MST
星途 面试题库

面试题:Python中reduce函数的高级应用

已知有一个列表,列表中的元素为字典,每个字典包含 'name' 和 'age' 两个键值对。使用Python的reduce函数实现计算所有人年龄总和,若列表为空则返回0,并解释reduce函数在这种场景下的工作原理。
29.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
from functools import reduce


def sum_ages(lst):
    def add_ages(acc, person):
        return acc + person['age']

    return reduce(add_ages, lst, 0)


在上述代码中,reduce 函数的第一个参数是一个函数 add_ages,这个函数接受两个参数,acc 是累加器,初始值为 reduce 函数的第三个参数 0(当列表为空时直接返回这个初始值),person 是列表中的每一个字典元素。add_ages 函数将累加器 acc 和当前 personage 相加并返回新的累加值。reduce 函数会对列表中的每个元素依次调用 add_ages 函数,最终返回所有年龄的总和。如果列表为空,由于初始值为 0,所以直接返回 0