【发布时间】:2017-03-26 04:07:42
【问题描述】:
我正在尝试使用马尔可夫链构建随机句子生成器,但是在尝试构建文件中每个单词之后的单词列表时遇到了问题。我一直在尝试使用的代码是:
word_list = [spot+1 for spot in words if spot == word]
我尝试过变体,例如:
word_list = [words[spot+1] for spot in words if spot == word]
但每次,我都会收到错误:
TypeError: Can't convert 'int' object to str implicitly
如何正确地将单词添加到给定单词之后的列表中?我觉得有一个我没有想到的显而易见的解决方案。
【问题讨论】:
-
spot是一个字符串吗?如果是这样,你想通过添加1来完成什么? -
Spot 是一个字符串,我给它加 1 以获取列表中紧随其后的单词。
-
你只是告诉它在字符串中添加 1,而不是它在列表中的索引。所以你必须写
word_list = [words[word_list.index(spot) + 1] for spot in words if spot == word] -
@n1c9 如果
word在输入中出现多次,则将不起作用,因为index(spot)将始终返回第一次出现的索引。
标签: python list python-3.x next