with open("text.txt", "r") as file:
contents = file.read().replace('\n',' ')
words = contents.split(' ')
wordsDict = {}
for i in range(len(words) - 1):
wordsDict[words[i]] = words[i + 1]
def assemble():
start = words[random.randint(0, len(words))]
print(start.capitalize())
assemble()
我目前正在创建一个马尔可夫链式项目。当我运行这段代码时,我原本希望字典看起来如下:
(如果text.txt上写着:当猫把猫赶到老鼠家里时,猫追赶老鼠)
{'the': 'cat', 'cat': 'chased', 'chased': 'the', 'the': 'rat', 'rat': 'while', 'while': 'the', 'the': 'dog', 'dog': 'chased', 'chased': 'the', 'the': 'cat', 'cat': 'into', 'into': 'the', 'the': 'rat', 'rat': 'house'}
但相反,我得到了
{'the': 'rat', 'cat': 'into', 'chased': 'the', 'rat': 'house', 'while': 'the', 'dog': 'chased', 'into': 'the'}
如果你没有察觉到一个模式,那就是该值不仅仅是数组中的下一个项目,而是最后一个单词出现之后的下一个项目。在这种情况下,我们的第一个关键&价值对是''':'老鼠',因为最后一次出现的是老鼠。
我不知道为什么会发生这种情况或如何解决它。
答案 0 :(得分:1)
您想要的字典无效,您无法复制密钥。您可以尝试使用列表列表来执行此操作。