我试图解析一个树,但是我得到了以下错误。类型错误:元组索引必须是整数,而不是str?在
def parseExpression(expression):
nodeMap = dict()
counter = 1
node = ""
retExp =""
for char in expression:
if char == '(' or char == ')' :
if (len(node) > 0):
nodeMap[str(counter)] = node;
retExp += str(counter)
counter +=1
retExp += char
node =""
elif char == ' ': continue
else :
node += char
return retExp,nodeMap
def printTree(tree, node, nodeMap):
if node not in tree:
return
print ('%s -> %s' % (nodeMap[node], ' '.join(nodeMap[child] for child in tree[node])) )
for child in tree[node]:
printTree(tree, child, nodeMap)
expression = " ( Root( SQ ( VBZ ) ( NP ( DT ) ( NN ) ) ( VP ( VB ) ( NP ( NN ) ) ) ))"
expression, nodeMap = parseExpression(expression)
tree = parseExpression(expression)
printTree(tree, tree[''][0], nodeMap)
输出:
^{pr2}$有人能帮忙调试这个程序吗,任何帮助都很感激谢谢。在
Traceback (most recent call last):
File "C:/Python33/refd.py", line 29, in <module>
printTree(tree, tree[''][0], nodeMap)
TypeError: tuple indices must be integers, not str
似乎名称树指向的是元组,因此不存在tree['']。 树应该指向字典吗?在
返回两个值retExp和nodeMap。因此,retemap包含树(retemap)。在
我假设你想把字典里的东西打印出来,这是元组中的第二个元素。所以你可以做的是:
但是,请稍候,这会产生另一个错误,因为在该字典中没有用键“”存储的内容。所以我决定印一本字典,我看到的是:
^{pr2}$不仅没有键“”,所有项都将自身作为值包含。这不是你这里的一棵树。在
相关问题 更多 >
编程相关推荐