[英]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.