Python 重新创建一个句子并输出句子中的所有单词

Python 重新创建一个句子并输出句子中的所有单词,python,string,Python,String,开发一个程序,识别句子中的单个单词,将其存储在列表中,并将原始句子中的每个单词替换为该单词在列表中的位置。 例如,句子 MY NAME IS MY NAME IS MY NAME IS 可以使用序列1,2,3,1,2,3,1,2,3,1,2,3从列表中这些单词的位置重新创建句子 这就是我到目前为止所做的: sentence = input("Please enter a sentence that you would like to recreate") x = sent

开发一个程序,识别句子中的单个单词,将其存储在列表中,并将原始句子中的每个单词替换为该单词在列表中的位置。 例如,句子

MY NAME IS MY NAME IS MY NAME IS 
可以使用序列1,2,3,1,2,3,1,2,3,1,2,3从列表中这些单词的位置重新创建句子

这就是我到目前为止所做的:

sentence = input("Please enter a sentence that you would like to recreate")
x = sentence.split()

positions = [0]

for count, i in enumerate(a):
    if x.count(i) < 2:
        positions.append(max(positions) + 1)
    else:
        positions.append(x.index(i) +1)

positions.remove(0)
print(positions)
句子=输入(“请输入您想要重新创建的句子”)
x=句子。拆分()
职位=[0]
对于计数,我在列举(a)中:
如果x.count(i)<2:
位置。追加(最大(位置)+1)
其他:
位置。附加(x.索引(i)+1)
位置。删除(0)
印刷(职位)
这会重新创建位置,但我需要做的是输出句子中的所有单词

例如,如果我写了一句话
莱斯特城是英超冠军,英超是最好的
,我希望程序输出这句话,其中包含
莱斯特,城市,是,冠军,of,the,premier,league,is,best


有人能在最后一点上帮我吗?

使用您生成的位置,您可以通过列表理解或简单的for循环获取您想要的列表部分。这里的关键是,当您存储的数字从
1
开始时,python索引从
0
开始。然后可以使用字符串的
join
功能以逗号打印

sentence = "Leicester city are champions of the premier league the premier league is the best"
x = sentence.split()

positions = [0]

for count, i in enumerate(x):
    if x.count(i) < 2:
        positions.append(max(positions) + 1)
    else:
        positions.append(x.index(i) +1)


positions.remove(0)

reconstructed = [x[i - 1] for i in positions]
print(", ".join(reconstructed))

使用生成的位置,您可以通过列表理解或简单的for循环获取所需的列表部分。这里的关键是,当您存储的数字从
1
开始时,python索引从
0
开始。然后可以使用字符串的
join
功能以逗号打印

sentence = "Leicester city are champions of the premier league the premier league is the best"
x = sentence.split()

positions = [0]

for count, i in enumerate(x):
    if x.count(i) < 2:
        positions.append(max(positions) + 1)
    else:
        positions.append(x.index(i) +1)


positions.remove(0)

reconstructed = [x[i - 1] for i in positions]
print(", ".join(reconstructed))

这个问题有问题陈述、代码、期望输出和问题本身。好帖子,@Musa,这(几乎)是我们对新用户的期望,干杯
print(“,”.join(x))
将使用逗号和每个单词之间的空格打印列表
x
的内容-这就是您想要的吗?您的示例不起作用。什么是
a
?对不起,a本来是X这个问题有问题陈述、代码、期望输出和问题本身。好帖子,@Musa,这(几乎)是我们对新用户的期望,干杯
print(“,”.join(x))
将使用逗号和每个单词之间的空格打印列表
x
的内容-这就是您想要的吗?您的示例不起作用。什么是
a
?对不起,a本来就是x,我想要的是当你输出句子中的所有单词时,我不想让它说同一个单词rwice。例如,如果这个句子是“我的名字是穆萨你好,我的名字是穆萨。我不知道这与您的原始算法或提出的问题有什么关系,但如果您只想使用唯一的单词,请使用
集合
原语。集合不保持顺序,所以你可能想用这样的东西,我想要的是,当你输出句子中的所有单词时,我不想让它说同一个单词rwice“我的名字是穆萨你好,我的名字是穆萨。我不知道这与您的原始算法或提出的问题有什么关系,但如果您只想使用唯一的单词,请使用
集合
原语。集合不维护顺序,因此您可能希望使用类似这样的内容