关于 python 中的 lambda

Regarding lambdas in python

我在python方面很弱,尤其是

我有一个 class 定义如下:-

class Employee:
    def __init__(self, id, age):
       self.age = age
       self.id = id

我有一个lambda要读:-

expr = (0, lambda acc, e: max(acc, e.age), lambda x: x)

根据我收集到的某种累加器,它在 e.age 键中的年龄元素上取最大值。

所以我的第一个猜测是将员工列表传递给 expr:-

employeeList = []
for i in range(1, 10):
    employeeList.append(Employee(i, 20))

maxAge = expr(employeeList)

但它给出了以下错误:-

    TypeError: 'tuple' object is not callable

有人可以帮助我阅读这个 lambda 表达式,特别是要传递给这个 expr 的具体内容吗?由于 lambda 在 python 中不可调试,这很难。

扩展我的评论,这就是使用标准 Python 函数完成代码的方法:

from functools import reduce

# your code

maxAge = reduce(expr[1], map(expr[2], employeeList), expr[0])

甚至

def map_reduce(iterable, initializer, reduce_pred, map_pred):
    return reduce(reduce_pred, map(map_pred, iterable), initializer)

maxAge = map_reduce(employeeList, *expr)

这里,expr[0]是初始化器,expr[1]是归约谓词,expr[2]是映射谓词。