gpt4 book ai didi

python - 输出出现两次 - 更新发布此问题前 30 分钟提出的问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:41 25 4
gpt4 key购买 nike

这是我的代码

import re
with open('newfiles.txt') as f:
k = f.read()
p = re.compile(r'[\w\:\-\.\,\']+|[^[\w\:\-\.\'\,]\s]')
originaltext = p.findall(k)
uniquelist = []
for word in originaltext:
if word not in uniquelist:
uniquelist.append(word)
indexes = ' '.join(str(uniquelist.index(word)+1) for word in originaltext)
n = p.findall(indexes)
file = open("newfiletwo.txt","w")
file.write (' '.join(str(e) for e in n))
file.close()
file = open("newfilethree.txt","w")
file.write(' '.join(uniquelist))
file.close()
with open('newfiletwo.txt') as f:
indexess = f.read()
with open('newfilethree.txt') as f:
differentwords = f.read()
differentwords = p.findall(differentwords)
indexess = [uniquelist.index(word) for word in originaltext]
for word in originaltext:
if not word in differentwords:
differentwords.append(word)
i = differentwords.index(word)
indexess.append(i)
s = "" # the reconstructed sentence
for i in indexess:
s = s + differentwords[i] + " "
print(s)

该程序基本上采用外部文本文件,返回其位置的索引(如果有任何单词重复,则采用第一个位置),然后将位置保存为外部文件。在执行此操作时,我拆分了文本文件,包括拆分标点符号,并将文件中出现的不同单词和标点符号也保存为外部文件。现在,对于困难的部分,使用这两个外部文件 - 索引和不同的分隔单词,我尝试重新创建原始文本文件,包括标点符号。但出现了标题所示的错误:

Traceback (most recent call last):
File "E:\Python\Index.py", line 31, in <module>
s = s + differentwords[i] + " "
IndexError: list index out of range

不想听起来很粗鲁,但我是一个初学者,请尝试以简单的方式尽可能少地改变,因为我自己创建了这个。你们可能知道一种更短的方法来做到这一点,但这是我可以处理的简单程度,由代码的长度证明。我尝试缩短原始文本文件,但事实证明没有用。有人知道为什么会出现错误以及如何修复它吗?我现在并不寻求效率,也许经过几个月的学习,但最简单的(我不介意太长)答案将是最好的。抱歉,如果我重复了很多话:-)

'newfiles' - 一堆带标点符号的句子

更新

代码不显示错误,但将原始句子打印两次。由于删除了第 23 行的 +1,错误已经消失。有谁知道为什么输出会重复两次?

最佳答案

问题是,你如何限定什么词是,什么不是。例如逗号是单词的一部分吗?在您的情况下,没有这样提到,但它也不是分隔符。所以你最终会得到单独的单词逗号或点等等。我无法访问您的输入,因此我只能提供示例:

p = re.compile(r'[\w\:\-\.\,]+|[^[\w\:\-\.\,]\s]')

有一点 - 在这种情况下:“Word”、“word”、“Word”、“Word.”、“word”都是单独的单词。因为点和逗号是单词的一部分。你不能一边吃蛋糕一边吃它。要解决这个问题...如果分隔之前有空格,您需要存储信息。

更新:哦是的。双输出。存储在中间的文件 - 没问题。所以在那之后就提交了一些东西。看这两行:
i = differentwords.index(单词)
索引.append(i)
它们需要位于 if 语句之前。

关于python - 输出出现两次 - 更新发布此问题前 30 分钟提出的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com