删除列表中重复的单词

时间:2016-01-18 11:43:54

标签: python python-3.x

我需要开发一个程序,其中它接收用户输入的字符串,例如:

'to be or not to be'. 

然后将字符串分成单独的单词:

'to', 'be', 'or', 'not', 'to', 'be' 

然后将这些单词放入列表中:

['to', 'be', 'or', 'not', 'to', 'be'] 

但是,如果重复一个单词,则只计算单词的第一次使用并替换为其位置编号。因此,例如,to中的to be or not to be都将计为1.这是因为单词to会重复,因此to的第一次出现会导致这些话。在将这些单词替换为其位置编号后,应使用这些数字重新创建该句子。所以to be or not to be应该成为:

1, 2, 3, 4, 1, 2 

单词和数字的列表应保存为单独的文件或单个文件。 这就是我到目前为止所做的一切:

UserSentence = input('Enter your chosen sentence: ') #this is where the user inputs their sentence
UserSentence = UserSentence.split()#.split()takes the inputted string and breaks it down into individual words...
                               #... and turns it into a list
List1 = UserSentence
List2 = UserSentence

2 个答案:

答案 0 :(得分:0)

你要做的就是首先你会得到输入,就像你做的那样。之后你会像你一样分开。然后你想要遍历每个单词,并在另一个列表中使用list的索引方法追加位置。这将为您提供每个单词的首次出现,并且您想要添加1,以便按照您想要的方式获得单词的位置。这是一个示例代码。请理解并询问您对此有任何疑问。

sentence = input("Enter a sentence: ")
words = sentence.split()

position = []
for word in words:
    position.append(words.index(word) + 1)

print(position)

这里是示例输出:

>>> Enter a sentence: to be or not to be
>>> [1, 2, 3, 4, 1, 2]

希望这会有所帮助。

答案 1 :(得分:0)

在Python 2.7上 sentence = input(“输入句子:”)将出错。 只需用raw_input

替换输入

上面的代码是简洁编码的坚实例子。

嗨Riddick, 仅供参考, 下面的代码将保留订单&从单词列表中删除重复项。如果你想修改用户的输入和输入然后做你的索引活动,

unique_1 = [] 如果项目不在unique_1中,则[unique_1.append(item)用于单词中的项目

希望它有所帮助,