【发布时间】:2015-08-02 05:33:05
【问题描述】:
所以我正在尝试这样做。
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 方法不起作用?
【问题讨论】:
-
你到底在做什么?我运行了第一个示例,它填充了列表 a。它还返回另一个带有空值的列表,这是有道理的。
-
@MK。你确定什么?我正在闲置,列表
a为空你做了什么? -
这里实际上不需要 lambda;
a.append已经是一个函数,可以调用将x添加到a。 -
a 被填充 - 作为副作用,这通常是一个坏主意。列表理解的结果是 list of None - 因为 list.append 返回 None
标签: python python-3.x