我正在制作一个作文生成器,方法是从样本文本创建一个有向图,其中单词是节点,单词和后面的任何单词之间都有有向边。我正在通过字典形成节点,但程序似乎不会读取第一个单词之后出现的单词。
tH = {}
with open('ex','r') as f:
for line in f:
valHold = [w.lower() for w in line.split()]
for x in valHold:
if x not in tH:
tH[x] = []
if x != valHold[-1] and valHold[valHold.index(x) + 1] not in tH[x]:
tH[x].append(valHold[valHold.index(x) + 1])
print(tH)我希望输出结果是
{'the' : ['sun', 'moon'], 'sun' : ['the'], 'moon' : []}当文件'ex‘包含字符串时
'the sun the moon'但是相反,输出是
{'the' : ['sun'], 'sun' : ['the'] 'moon' : []}发布于 2019-04-23 10:18:09
而不是遍历valHold中的每个单词的for x in valHold:,您需要遍历每隔一次的单词,例如x= valHold0,x =valHold2,依此类推。你可以这样做:
for i in range(0, len(valHold), 2):
x = valHold[i]
if x not in tH:
tH[x] = []
if x != valHold[-1] and valHold[i + 1] not in tH[x]:
tH[x].append(valHold[i + 1])https://stackoverflow.com/questions/55803185
复制相似问题