Я создаю генератор эссе, создавая ориентированный граф из образца текста, где слова являются узлами, а между словом и любым последующим словом стоят ориентированные ребра. Я формирую узлы через словарь, но программа, кажется, не читает вхождения слова после первого.
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' : []}