所以我正在尝试这样做。
a = []
map(lambda x: a.append(x),(i for i in range(1,5)))
我知道 map 需要一个函数,但为什么它不附加到列表中呢?还是 append 不是函数?然而打印 a
结果为 a
仍然是空的
现在一件有趣的事是这行得通
a = []
[a.append(i) for i in range(5)]
print(a)
他们基本上不是在“说”同样的话吗?
就好像列表理解变成了某种混合的列表理解函数
那么为什么 lambda 和 map 方法不起作用呢?
原文由 Zion 发布,翻译遵循 CC BY-SA 4.0 许可协议
我假设您使用的是 Python 3.x,您的带有 map() 的代码不起作用的实际原因是因为在 Python 3.x 中,map() 返回一个生成器对象,除非您迭代 map 返回的生成器对象() 时,lambda 函数不会被调用。尝试执行 list(map(…)) ,您应该会看到填充。
话虽这么说,你在做什么没有多大意义,你可以使用 -