请按照此代码操作:def addition(n): return n + nnumbers = (1, 2, 3, 4) result = map(addition, numbers) print(list(result))输出:[2,4,6,8]现在,当我再次对已经成为列表的结果应用 list() 时,结果结果为空。list(result)输出: []为什么会这样呢?
1 回答
函数式编程
TA贡献1807条经验 获得超9个赞
地图对象是一个生成器。
list(result)
涉及到迭代器的迭代。迭代器现已完成。当您重试时,没有数据可返回,因此您有一个空列表。如果以某种方式重置迭代器,就可以获得预期的结果。
这就像读取整个文件,然后想知道为什么下一个read
循环不返回任何内容:你已经到了最后。
添加回答
举报
0/150
提交
取消