繁体   English   中英

反向索引实现中的字符串索引超出范围

[英]string index out of range in inverted index implementation

*********************文件a.py ************************* ********

a=input()
while (not  (a[len(a)-1].isalpha())):
    a=a[:-1]
print(a)

*****************文件b.py ***************************的一部分******

for my_word in my_words.split():  
    while(not(my_word[len(my_word)-1].isalpha())):  
        my_word=my_word[:-1]  
    ll=lemmatizer.lemmatize(my_word.lower())  
    if ll not in stop_words:  
        l.append(ll) 

文件a.py运行正常,但b.py给出错误

Traceback (most recent call last):
  File "b.py", line 42, in <module>
    while(not(my_word[len(my_word)-1].isalpha())):
IndexError: string index out of range.

如果我删除while循环

while(not(my_word[len(my_word)-1].isalpha())):  
            my_word=my_word[:-1] 

我的代码(b.py)运行正常。 但是我想删除单词中的特殊字符后缀。

您可以使用正则表达式替换(而不是while循环)来删除非字母字符:

import re
my_word = "Hello_world+?a123"
re.sub(r"(\W|\d|_)+", "", my_word)
#'Helloworlda'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM