def classify0(inX, dataSet, labels, k):
dataSetSize = dataset.shpe[0]
diffMat = tile(inX, (dataSetSize, 1)) - dataSet
sqDiffMat = diffMat ** 2
sqDistances = sqDiffMat.sum(axis = 1)
distances = sqDistances ** 0.5
sortedDistIndicies = distances.argsort()
classCount={}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]
classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
sortedClassCount = sorted(classCount.interitems(),
key=operator.itemgetter(1), reverse=true)
return sortedClassCount[0][0]
上面是我第一次使用python进行编码。我将它导入终端,它说'IndentationError:unindent与任何外部缩进级别都不匹配'。但我不知道如何解决它。请帮帮我。
答案 0 :(得分:0)
<击> 你的代码是: 击>
sortedClassCount = sorted(classCount.interitems(),
key=operator.itemgetter(1), reverse=true)
return sortedClassCount[0][0]
<击> 似乎没有理由跳。只需删除所有额外的空格,如下所示: 击>
sortedClassCount = sorted(classCount.interitems(),
key=operator.itemgetter(1), reverse=true)
return sortedClassCount[0][0]
在python中,因为没有奇怪的括号{}
来表示函数的开始和结束,所以解释器使用缩进级别来了解差异。
这就是您的代码不起作用的原因。
尝试删除所有缩进并将其放回原因,因为您可能在标签中添加了混合空格,或者您不小心将另一个空格添加到了您不应该有的地方。