我想从输入的单词列表及其位置创建一个文本文件

时间:2016-07-04 11:17:47

标签: python

此代码不起作用,我不知道原因。

sentence1= input("Entre positions")
sentence2 = (sentence1.split(' '))
pint (sentence2)
num_words= input("Entre words")
num_words1 = (num_words.split(' '))
print (num_words1)

s = "" #reconstruct the sentence
for i in sentence2:
    s = s + num_words1[i] + " "
print(s)

1 个答案:

答案 0 :(得分:1)

第3行有一个拼写错误,应该是print(sentence2)。但主要问题是您正在尝试使用字符串来索引列表。你不能这样做:你需要将输入的数字字符串转换成整数。

这是修复后的代码版本。我已经改变了一些变量名,使代码更清晰。

positions = input("Entre positions: ")
positions = [int(s) for s in positions.split()]
print(positions)

words = input("Entre words: ")
words = words.split()
print(words)

#reconstruct the sentence
s = "" 
for i in positions:
    s += words[i] + " "
print(s)

<强>测试

Entre positions: 1 3 2 0
[1, 3, 2, 0]
Entre words: test This a is
['test', 'This', 'a', 'is']
This is a test 
顺便说一句,你可以使用列表理解来重构句子。它更紧凑(效率更高)。

#reconstruct the sentence
print(' '.join([words[i] for i in positions]))