我需要一些帮助来解释以下代码。
在书中,作者提供了一个advancedclassify.py
脚本来读取python中的CSV文件
class matchrow:
def __init__(self,row,allnum=False):
if allnum:
self.data=[float(row[i]) for i in range(len(row)-1)]
else:
self.data=row[0:len(row)-1]
self.match=int(row[len(row)-1])
def loadmatch(f,allnum=False):
rows=[]
for line in file(f):
rows.append(matchrow(line.split(','),allnum))
return rows
如果现在我读了一个名为matchmake.csv
的文件:
import advancedclassify
matchmaker = advancedclassify.loadmatch('matchmaker.csv')
print(matchmaker)
但是媒人没有存储我的数据。我不知道我的数据存储在哪里。
每行的csv文件都是这样的:
39,yes,no,skiing:knitting:dancing,220 W 42nd St New NY
43,no,yes,soccer:reading:scrabble,824 3rd Ave New York NY,0
我将非常感谢有人可以帮助我,因为我是python的新手,所以它很难受。感谢。
资料来源:编制集体智慧Ch9
答案 0 :(得分:0)
使用here中的代码:
import advancedclassify
matchmaker = advancedclassify.loadmatch('matchmaker.csv')
print(matchmaker[:2])
打印:
[<advancedclassify.matchrow instance at 0x1005e3a28>, <advancedclassify.matchrow instance at 0x1005e33f8>]
因此matchmaker
是matchrow
个实例的列表。这是你的数据。
实际数据存储在实例的match
属性中。看看:
for match in matchmaker:
print(match.data)