目前,我正在分析resumes,只在每行开头使用“-”时才删除它。我试着在文本被拆分后识别每个字符串的第一个字符。以下是我的代码:
for line in text.split('\n'):
if line[0] == "-":
line[0] = line.replace('-', ' ')
line是一个字符串。这是我的思维方式,但是每次我运行它时,我都会得到错误IndexError: string index out of range
。我不知道为什么,因为它是一个字符串,第一个元素应该被识别。谢谢您!在
Tags:
这可能是由于空行。你可以在取索引之前先检查一下长度。在
你得到的问题是因为有些行是空的。在
那么你的替代者就错了:
line
在下一次迭代中丢失。顺便说一下,原来的行列表也是。在如果要删除字符串的第一个字符,则不需要
replace
,只需将字符串切片(不要冒险删除其他类似的字符)。在一个可行的解决方案是使用
startswith
进行测试,并重新生成一个新的字符串列表。那就回去吧结果:
^{pr2}$有了更多的经验,您可以将此代码打包到列表理解中:
最后,正则表达式模块也是一个不错的选择:
这将删除以破折号开头的所有行上的短划线。Multiline标志告诉regex引擎将
^
作为行的开始,而不是缓冲区的开始。在相关问题 更多 >
编程相关推荐