您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:在地图对象上两次调用“列表”

Python:在地图对象上两次调用“列表”

map 在Python 3中返回一个有状态的迭代器。有状态的迭代器在耗尽后可能只消耗一次,并且不产生任何值。

在您的代码段中,您多次 迭代器。list(m)每次尝试重新创建列表时,对于第二次和下一次运行,创建的列表将始终为空(因为在第一次list(m)操作中消耗了源迭代器)。

只需将迭代器转换为列表一次,然后再对该列表进行操作。

m = map(lambda x: x**2, range(0,4))
l = list(m)
assert sum(l) == 14
assert sum(l) == 14
python 2022/1/1 18:47:53 有468人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶