我遇到了一个我无法解决的逻辑错误,并希望得到一些帮助。 这是我的代码
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)
基本上无法处理独特的单词
答案 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.