2019-01-20
閱讀量:
1486
object of type'map'has no len
執(zhí)行如下代碼的時候報錯
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()
但是網(wǎng)上這么寫的為啥可以成功執(zhí)行?
答:這是python版本的差異,在python2中map函數(shù)返回的是list對象,而在python3中map返回的是一個map對象。map對象屬于一種生成器是懶惰的,只存儲計算方法并不會存儲實際的計算結(jié)果。map對象也沒有l(wèi)en()的方法,如果想獲取長度需要使用list()函數(shù)調(diào)用并計算返回列表。






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論
0條評論