problem
TypeError: ‘builtin_function_or_method’ object is not subscriptable
def classify(inputTree, featLabels, testVec):
"""
在实际数据集中改属性存储在哪个位置? 是第一个属性还是第二个属性?
:param inputTree:
:param featLabels:
:param testVec:
:return:
"""
firstStr = list(inputTree.keys())[0]
secondDict = inputTree[firstStr]
# 将标签字符串转换为索引, 使用index方法查找当前列表中第一个匹配firstStr变量的元素
featIndex = featLabels.index[firstStr]
for key in secondDict.keys():
# 比较testVec变量中的值与树节点的值
if testVec[featIndex] == key:
if type(secondDict[key]).__name__ == 'dict':
classLabel = classify(secondDict[key], featLabels, testVec)
else:
# 如果到达叶子节点,返回当前节点的分类标签
classLabel = secondDict[key]
return classLabel
solve
featIndex = featLabels.index(firstStr)