【发布时间】:2020-05-13 20:47:29
【问题描述】:
我正在尝试了解 reduce 函数如何与 lambda 函数一起工作
#argument digits can be "23" or "45"
def letterCombinations(self, digits):
if '' == digits: return []
kvmaps = {
'2': 'abc',
'3': 'def',
'4': 'ghi',
'5': 'jkl',
'6': 'mno',
'7': 'pqrs',
'8': 'tuv',
'9': 'wxyz'
}
return reduce(lambda acc, digit: [x + y for x in acc for y in kvmaps[digit]], digits, [''])
但是,当我遇到 return 声明时,我完全被难住了 有人可以帮我分解退货声明以了解它应该做什么
我已经浏览了以下链接: how lambda works with reduce
Q1 acc(累加器)的第一个值是多少? Q2是我的理解,迭代器只会被lambda的第二个参数使用,对吗? Q3:accumulator(acc) 和第二个参数的行为在初始化器存在与否的情况下是否不同?
【问题讨论】:
-
这里的问题真的是 lambda 吗?即如果给
reduce一个命名函数,你能理解代码吗? -
您链接到的问题的答案很好地解释了这一点。看完这个答案你到底有什么不明白的?
-
@DeepSpace,问题已更新,
标签: python-3.x lambda reduce