TypeError:“地图”类型的对象没有len()

时间:2018-07-29 19:08:01

标签: python python-3.x

我正在使用下面的函数来计算逆项频率。

all_tokens_set = set([item for sublist in tokenized_documents for item in sublist]) 

def inverse_document_frequencies(tokenized_documents):
idf_values = {}
global dfInv
dfInv = pd.DataFrame() 
tokenized_documents = [tokenize(d) for d in words]
all_tokens_set = set([item for sublist in tokenized_documents for item in sublist])
for tkn in all_tokens_set:
    contains_token = map(lambda doc: tkn in doc, tokenized_documents)
    idf_values[tkn] = 1 + math.log(len(tokenized_documents)/(sum(contains_token))) 
dfInv=pd.DataFrame(data ={'tkn':contains_token,'idf_values':idf_values[tkn]})
return dfInv
inverse_document_frequencies(total_all)

total_all是一个列表。

我收到以下错误消息:

  

TypeError:“地图”类型的对象没有len()

1 个答案:

答案 0 :(得分:1)

为了找到长度,您将必须将映射键入列表(或元组),然后可以在其上调用len。例如:

 >>> len(list(map(lambda a: a[0], x)))
3