我不明白代码中的这一行(简单代码)

2024-09-24 22:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在朋友的帮助下创建了以下代码(用于解压文件):

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])行是如何将位置和单词解压回一个句子的。如果有人能以最简单的方式解释,因为我对这一点非常陌生,那就太好了:)


Tags: 文件代码intxtforread朋友position
3条回答

这两个数组包含“positionFile”中每个空格分隔的数字

position = position.split()
position = [int(i) for i in position]

这三个从列表中获取每个值,并将“wordsFile”中相应的单词添加到单词列表中。(正如@purpleladydragons所说,-1转换为基于0的索引)。你知道吗

FinalSentence = []
for x in position:
        FinalSentence.append(words[x-1]) 

这将单词连接成一个用空格分隔的字符串,并将其打印到屏幕上。你知道吗

print(' '.join(FinalSentence))

在没有看到文件的情况下,我只能假设它执行以下操作(显然是最简单的形式,因为我看不到下面代码的真实场景)

positions变量是一个整数数组。你知道吗

它循环遍历整数数组,并将值减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'

很难确定,因为我们没有访问文件的权限,但是我假设positions表示单词位置的1索引,但是单词是一个0索引数组,因为在python中数组就是这样工作的。所以你看到的是x-1而不是x

所以如果你的文字文件看起来像

sentence this a is

你的位置文件看起来像

2 4 3 1

然后你将按顺序加上这个一个。你知道吗

相关问题 更多 >