[英]Python: How does this lambda function work?
我了解基本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:]
在此功能中如何工作?
ll
只是对序列类型的引用(可能是列表或元组,但可以是支持__getitem__
任何东西),因此ll[0]
是序列的第一项,而ll[1:]
是其余序列的列表项目。 ll
是lambda的参数这一事实并不影响ll
的解释方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.