今天我接受了一次采访并得到了一个我回答错误的问题。 这是问题:
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]。 谁能解释一下?我感到很困惑。