这两个python函数之间有什么区别

时间:2018-04-03 15:30:37

标签: python

今天我接受了一次采访并得到了一个我回答错误的问题。 这是问题:

def gen():
    return [lambda x: x + i for i in range(4)]

print([m(1) for m in gen()])

结果是[4,4,4,4]。我的回答是[1,2,3,4]。 我还运行了以下代码。

def gen():
    return (lambda x: x + i for i in range(4))

print([m(1) for m in gen()])

结果是[1,2,3,4]。 谁能解释一下?我感到很困惑。

1 个答案:

答案 0 :(得分:0)

使用()的第二个代码段是生成器。 用于节省内存

查看PEP-289