参加我的第一门计算机科学课程,提前道歉可能是一个基本的错误。
这一点是打印用户输入的单词的排序索引(键位后面的位置)。
我已经研究过这个问题,但我仍然不知道为什么我会收到这个错误。它说明问题出现在第26行。 (打印(键+"" + sortIndex [键])< ---第26行
显然sortIndex [key]被视为字符串而不是整数。即使是我的实验室TA(仍然是学生)也无法解决这个问题。
第一个函数中的注释print语句用于显示索引在未经处理的情况下的含义。
def buildIndex(text):
index = {}
words = text.split()
position = 0
while position < len(words):
nextWord = words[position]
if nextWord in index.keys():
ref = index[nextWord]
ref.append(position)
index[nextWord] = ref
else:
index[nextWord] = [position]
position += 1
# print(index)
return index
def displayIndex(index):
sortIndex = sorted(index.keys())
for key in sortIndex:
print(key + " " + sortIndex[key])
def main():
text = str(input("Enter some text to index: "))
displayIndex(buildIndex(text))
main()
感谢任何和所有帮助! 另外,这是我在这里的第一篇文章,所以如果我做错了,请告诉我(对不起)XD
答案 0 :(得分:1)
def displayIndex(index):
sortIndex = sorted(index.keys())
for key in sortIndex:
print(key + " " + sortIndex[key])
sortIndex
是一个包含字典index
中的(字符串)键的列表。然后,您尝试使用刚刚从sortIndex
中取出的密钥编入sortIndex
索引。我想您可能打算使用密钥来索引index
。即:
print(key + " " + index[key])
答案 1 :(得分:0)
我添加了一个简单的print语句来检查:
def displayIndex(index):
sortIndex = sorted(index.keys())
print sortIndex
for key in sortIndex:
print key, type(key)
print(key + " " + sortIndex[key])
输出显示您没有使用整数:
['I', 'Now', 'a', 'construct', 'rhyme', 'will']
I <type 'str'>
相反,请尝试查找单词的索引;我认为这就是你想要的。
def displayIndex(index):
sortIndex = sorted(index.keys())
print sortIndex
for key in sortIndex:
# print key, type(key)
print(str(sortIndex.index(key)) + " " + key)
def main():
text = "Now I will a rhyme construct"
displayIndex(buildIndex(text))
main()的
这个输出是......
['I', 'Now', 'a', 'construct', 'rhyme', 'will']
0 I
1 Now
2 a
3 construct
4 rhyme
5 will