参考Map object is not subscriptable error 我用Moses Xu的答案来获取功能名称。它产生错误" Map对象不可订阅"。代码如下。我正在使用python 3.x
top_ranked_features = sorted(enumerate(ch2.scores_),key=lambda x:x[1], reverse=True)[:1000]
top_ranked_features_indices = map(list,zip(*top_ranked_features))[0]
for feature_pvalue in zip(np.asarray(train_vectorizer.get_feature_names())[top_ranked_features_indices],ch2.pvalues_[top_ranked_features_indices]):
print( feature_pvalue).
错误出现在第二行代码中。
输出
('00 8b 4d fc', 3.4028916591534005e-61)
('51 00 22 05', 3.4028916591534005e-61)
('00 74 00 61', 8.3973527363656966e-61)
答案 0 :(得分:0)
在python 3.x中,map返回迭代器而不是列表。因此,返回的对象不是可订阅的。
您可以将其更改为list(map(list,zip(*a)))[0]
以解决问题。
编辑:
您还可以使用next(map(list,zip(*a)))
不将分数加载到内存中,并使代码更加pythonic。