我理解基本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:]
如何在此功能中运作?
答案 0 :(得分:0)
ll
只是对序列类型的引用(可能是列表或元组,但可能是支持__getitem__
的任何内容),因此ll[0]
是序列的第一项ll[1:]
是剩余项目的列表。 ll
是lambda的参数这一事实不会影响ll
的解释。