首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序无法识别单词python的多次出现(在linux上)

程序无法识别单词python的多次出现(在linux上)
EN

Stack Overflow用户
提问于 2019-04-23 09:42:33
回答 1查看 33关注 0票数 0

我正在制作一个作文生成器,方法是从样本文本创建一个有向图,其中单词是节点,单词和后面的任何单词之间都有有向边。我正在通过字典形成节点,但程序似乎不会读取第一个单词之后出现的单词。

代码语言:javascript
复制
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)

我希望输出结果是

代码语言:javascript
复制
{'the' : ['sun', 'moon'], 'sun' : ['the'], 'moon' : []}

当文件'ex‘包含字符串时

代码语言:javascript
复制
'the sun the moon'

但是相反,输出是

代码语言:javascript
复制
{'the' : ['sun'], 'sun' : ['the'] 'moon' : []}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 10:18:09

而不是遍历valHold中的每个单词的for x in valHold:,您需要遍历每隔一次的单词,例如x= valHold0,x =valHold2,依此类推。你可以这样做:

代码语言:javascript
复制
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])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55803185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档