如何用lambda 优化下面代码

def count():
    fs = []
    def f(n):
        def j():
            return n * n
        return j
    for i in range(1, 4):
        fs.append(f(i))
    return fs

f1, f2, f3 = count()
阅读 2.4k
1 个回答
def count():
    fs = []
    def f(n):
        return lambda : n * n
    for i in range(1, 4):
        fs.append(f(i))
    return fs

f1, f2, f3 = count()

你如果要保持闭包,且调用f1(),f2()...时不用传参数,就这样了。但是我不明白你这样闭包有什么意义。

def count():
    for i in range(1, 4):
        yield i*i

直接返回值不好吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题