程序无法处理独特的单词

时间:2016-05-23 20:01:32

标签: python

我遇到了一个我无法解决的逻辑错误,并希望得到一些帮助。 这是我的代码

Mysentence = MySentence 
print(Mysentence)
MysentenceList = Mysentence.split()
List = []

for k in MysentenceList:
    position = MysentenceList.index(k)
    position = position + 1
    position = str(position)
    List.append(position)

基本上无法处理独特的单词

3 个答案:

答案 0 :(得分:2)

如果您想为每个单词分配一个"唯一ID",您必须在另一个数据结构中管理它。另一个列表可以解决这个问题:

UniqueWords = []
for k in ThesentenceList:
    if k in UniqueWords:
        position = UniqueWords.index(k)
    else:
        position = len(UniqueWords)
        UniqueWords.append(k)
    position = position + 1
    position = str(position)
    TheList.append(position)

答案 1 :(得分:0)

分割后的列表是["Hello", "Hello", "I", "Hello"],然后您可以使用它来分配单词索引值。

" Hello"的第一个实例索引0是" I"的第一个实例。是索引2.如果你想分配一个"唯一的单词ID"从零开始计算,序列中没有间隙,您将不得不更改ID分配算法来管理重复的单词。

我建议使用像Python字典这样的东西来跟踪你找到它们时的独特单词(它是一个哈希映射,所以避免使用" index&#34进行列表迭代;这将是长输入会慢慢来。)

答案 2 :(得分:0)

list.index(item)正在item为您提供list的第一个实例的位置。 “Hello”的第一个实例位于位置0,但是您在该位置添加1,因此每次都会报告1。 “我”位于第2位,因此它报告了3.