热线电话:13121318867

登录
2019-01-20 阅读量: 1388
object of type'map'has no len

执行如下代码的时候报错

ls = [1,2,3,4,5] 
a = map(lambda x: x**2,ls)
len(a)

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-1a2e6ec5f1e3> in <module>()
----> 1 len(a)

TypeError: object of type 'map' has no len()

但是网上这么写的为啥可以成功执行?

答:这是python版本的差异,在python2中map函数返回的是list对象,而在python3中map返回的是一个map对象。map对象属于一种生成器是懒惰的,只存储计算方法并不会存储实际的计算结果。map对象也没有len()的方法,如果想获取长度需要使用list()函数调用并计算返回列表。

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子