Python:这个lambda函数如何工作?

时间:2014-10-23 18:50:16

标签: python lambda

我理解基本lambda函数如何在这个例子中起作用:

def adder(x):
    return lambda y: x + y
add5 = adder(5)
add5(1) # returns 6

虽然,我试图破解lambda函数在这个例子中的工作原理:

def secondsToStr(t):
    return "%d:%02d:%02d.%03d" % \
        reduce(lambda ll, b: divmod(ll[0], b) + ll[1:], [(t*1000,), 1000, 60, 60])

对我而言,lambda函数是:lambda ll, b: divmod(ll[0], b) + ll[1:]

ll[0]ll[1:]如何在此功能中运作?

1 个答案:

答案 0 :(得分:0)

ll只是对序列类型的引用(可能是列表或元组,但可能是支持__getitem__的任何内容),因此ll[0]是序列的第一项ll[1:]是剩余项目的列表。 ll是lambda的参数这一事实不会影响ll的解释。