所以我有这个代码(用于解压缩文件),这是我在朋友的帮助下创建的:
wordsFile = open('wordsFile.txt', 'r')
words = wordsFile.read()
words = words.split()
positionFile = open('positionFile.txt', 'r')
position = positionFile.read()
position = position.split()
position = [int(i) for i in position]
FinalSentence = []
for x in position:
FinalSentence.append(words[x-1])
print(' '.join(FinalSentence))
但是我不明白第FinalSentence.append(words[x-1])
行如何将位置和单词解压缩回句子。如果有人能用最简单的方式解释因为我对此非常陌生,那就太棒了:)
答案 0 :(得分:1)
很难确定,因为我们无法访问这些文件,但我认为position表示单词'position的1-index,但是单词是0-index数组,因为这就是数组在python中的工作方式。这就是为什么你看x-1而不是x。
所以,如果您的文字文件看起来像
sentence this a is
您的位置文件看起来像
2 4 3 1
然后您将依次添加此, , a ,句子。
答案 1 :(得分:0)
在没有看到文件的情况下,我只能假设它有类似下面的内容(显然是最简单的形式,因为我无法看到下面代码的真实场景)
position变量是一个整数数组。
它循环遍历整数数组并减去值1以获取单词的数组索引。
例如:
words = ['very', 'my', 'nice', 'sentence']
positions = [2, 1, 3, 4]
然后循环通过阵列阵列。
当它循环通过它所做的位置时。
FinalSentence.append(words[2 - 1])
FinalSentence.append(words[1 - 1])
FinalSentence.append(words[3 - 1])
FinalSentence.append(words[4 - 1])
最有可能是1,因为数组索引从0开始。
然后你会:
FinalSentence = ['my', 'very', 'nice', 'sentence'];
然后加入
'my very nice sentence'
答案 2 :(得分:0)
这两个数组在" positionFile"中包含每个以空格分隔的数字。
position = position.split()
position = [int(i) for i in position]
这三个从列表中取出每个值,并从" wordsFile"中添加相应的单词。到一个单词列表。 (-1
转换为基于0的索引,正如@purpleladydragons所说)。
FinalSentence = []
for x in position:
FinalSentence.append(words[x-1])
将单词连接成用空格分隔的字符串,然后将其打印到屏幕上。
print(' '.join(FinalSentence))