Skip to main content
 首页 » 编程设计

Python 返回 map 对象

2025年05月04日25zlslch

我是 Python 的新手,正在阅读《Python 中的机器学习》一书。在一个例子中,我有

min(datMat[:,0]) 

应该返回

 matrix([[-5.379713]]) 

但是我得到的是

 matrix([[<map object at 0x000002130BF3E240>]], dtype=object) 

当我将其包含在代码中时

rangeJ = float(max(dataSet[:,j]) - minJ) 

我收到错误“TypeError:不支持的操作数类型 -:'map' 和 'map'”。

这是我用来生成 dataMat 的代码

def loadDataSet(fileName): 
    dataMat = [] 
    fr = open(fileName) 
    for line in fr.readlines(): 
       curLine = line.strip().split('\t') 
       fltLine = map(float,curLine) 
       dataMat.append(fltLine) 
   return dataMat 

我很难弄清楚这一点。任何帮助都会很棒!!

请您参考如下方法:

正如 PM 2Ring 的评论中所建议的那样,您的书似乎在使用 Python 2 而您正在使用 Python 3。map 函数在 Python 2 中返回一个列表,但在 Python 3 中它除非您明确将其转换为列表,否则返回 map 对象。您应该能够通过更改此行来使您的代码工作:

fltLine = map(float,curLine) 

收件人:

fltLine = list(map(float,curLine))