小白使用Python语言进行NLP常用字符串、列表操作函数&对常见异常情况的处理技巧##
本文内容主要总结了本小白参加绿色计算大赛进行文本处理工作的收获,主要是为了方便日后进行类似工作用于参考。大佬可以绕道走,不喜勿喷,欢迎斧正
字符串操作函数
1. str. find(substr,begin=0,end=len(str))
当在母串(str)中匹配到第一个子串(substr)后返回该子串中首个字符在str中的索引值,若查找不到substr返回-1。
示例:
test="abcdabcd"
print(test.find("abcd"))
print(test.find("acbd"))
#输出
0
1
3. str.count(substr, start= 0,end=len(str))
返回在母串(str)中子串(substr)一共出现的次数。要注意的是,若子串前、后有重复部分,计数时不会重复统计。
示例:
test="aaaaaa"
print(test.count("a"))
print(test.count("aa"))
#输出
6
3
5. str.strip(substr)
返回去除母串str首尾处所有子串substr后剩余的字符串(会在内部递归进行,直至得到的结果首尾不再存在substr为之)。
注意只可以去除首尾部分的字符/字符串,不能够删除中间的字符/字符串。
示例:
test="abab1234ab"
print(test.strip("ab"))
#输出
1234
7. str.replace(old_substr,new_substr,max_times)
返回将母串str中最多max_times个old_sunstr替换为new_substr后的字符串(若未传入max_times,则默认全部替换)。
若存在替换次数的限制, replace函数使用时应定义max_times,否则特殊数据出现多次替换会报错,浪费调试时间。
示例:
test="abab1234ab"
print(test.replace('ab','h',2))
#输出
hh1234ab
8. str.split(sub="",num=-1)
我对于该函数的理解是:在母串str中匹配子串sub,匹配到以后删除该子串并将母串在此分割开。该函数返回一个列表,列表中保存str分割后剩余的部分。num表示匹配到子串的个数,也同时表示将母串分割为num+1部分。(num=-1表示默认在所有sub出现的地方进行分割)
示例:
test="1ab1cd1ef1"
print("默认分割所有",test.split("1"))
print("只分割两次",test.split("1",2))
#输出
默认分割所有 ['', 'ab', 'cd', 'ef', '']
只分割两次 ['', 'ab', 'cd1ef1']
列表操作
1.list.remove(obj)
该函数在list对象自身中移除指定的一项obj。注意:当list中不包含传入的obj时会报错;该函数没有返回值(None)。注:不要在for循环遍历列表的同时在循环内使用remove操作,这样会导致遍历不完整!!
示例:
test=["a","b","c"]