2016-05-23 43 views
3

我遇到了一个我无法解决的逻辑错误,并希望获得一些帮助。 这里是我的代码程序无法处理唯一字

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'替换'I'?你的意思是这是第二个*独特的词? – Mureinik

+1

是的是的,即时通讯试图说!对不起没有明确说明这是做什么的 – John

回答

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) 
+0

啊忘了它解决了它 – John

0

分裂后,您的列表是["Hello", "Hello", "I", "Hello"]您再使用分配字索引值。

“Hello”的第一个实例是索引0,“I”的第一个实例是索引2.如果要指定从零开始计数的“唯一字ID”必须更改您的ID分配算法以管理重复的单词。

我建议使用像Python字典这样的东西来追踪唯一的字,因为你发现它们(这是一个哈希映射,所以避免了与“索引”的列表迭代,这将与长输入变得很慢)。

0

list.index(item)list中给出item的一次性位置。 “Hello”的第一个实例位于位置0,但是您将该位置加1,所以它将每次报告1。 “I”位于位置2,所以它报告3.

相关问题