我正试图编写一个程序,从维基百科解析的段落中删除所有专有名词。你知道吗
no_pnoun_paragraph = ""
for i in range(len(clean_paragraph)):
if clean_paragraph[i].isupper() == True and clean_paragraph[i - 2] != ".":
cutoff = clean_paragraph[i:]
delete = cutoff[:cutoff.find(" ")]
clean_paragraph = clean_paragraph.replace(delete, "")
print clean_paragraph
这将尝试删除所有以大写字母开头但不以句子开头的单词。我收到一个错误,字符串索引超出if语句的范围。你知道吗
如何修复代码以解决此问题?你知道吗
我想,这个错误是因为下面的代码行
因为您要替换它,所以段落的长度会缩短。但是,当for循环开始时
clean_paragraph
长度是不同的。你知道吗例如:
比如说,你干净的段落是
"Hello"
执行len(clean_paragraph)
时,长度将为5
那么,现在..如果你replace 'l'
如下然后,clean_段的长度减少到3。 但是,由于for循环继续,范围是0到5。但是,由于前面的操作减小了大小,当for循环的索引变为4时,
clean_paragraph[4]
与当前一样超出范围,clean\u paragraph是“Heo”并且您正在尝试访问第四个索引您可以使用
re
执行以下操作:相关问题 更多 >
编程相关推荐