为了账号安全,请及时绑定邮箱和手机立即绑定

当我在 Python 中使用 list() 将地图对象转换为列表对象,并再次将 list() 应用于

当我在 Python 中使用 list() 将地图对象转换为列表对象,并再次将 list() 应用于

婷婷同学_ 2023-12-29 10:11:08
请按照此代码操作: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循环不返回任何内容:你已经到了最后。


查看完整回答
反对 回复 2023-12-29
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信