今天,跟大家分享一下我做小项目时想出来的文本字符处理的方法,希望能对大家有所帮助。
完整代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
strings = "我,是‘c|s;d|n!的:程【序】员#m,r&.;p'a#n?_&学?狂" #将字符串设置好
def string_process(string): #定义一个字符处理函数,设置参数string,是有待处理的字符串。
print ( "python使我快乐!!" )
print ( "未处理的字符串:" ,string)
varchar = '‘' “”: #,!【】,&#|?|,&;;?:"'#人为设定字符集合
ls = [] #定义一个列表用于存储拆散的字符
for s in string:
ls.append(s) #将字符串拆散存进列表中
for element in ls:
if element in varchar: #如果在字符集合内发现,则从列表中删除
ls.remove(element)
string = '' #定义字符串
for l in ls: #将列表中拆散的元素组合回去。
string = string + l
print ( "处理后的字符串:" ,string) #得到处理结果
string_process(string = strings) #调用函数,传入实参给形参。
|
运行结果,如下图:
对于处理文本字符的思想在代码中已经说明,关于代码的解释在注释中也写出了。我们把它通过函数进行封装,当我们需要处理文本字符的时候,通过调用函数就可以实现文本字符处理了。当然,调用函数处理字符时需要得到string返回值以及注释掉print,因为我们如果是在循环中调用,没必要全部打印一遍,影响视觉对文本的分析。即修改代码如下图:
对于上面的文本处理代码,我又做了一次更新,可以增加新的字符或者是字符串来更新字符集合,更加方便处理文本中的字符。
改进后的代码,如下图:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
strings = "我,是‘c|s;d|n!的:程【序】员#m,r&.;②p'「(a#n」?_&学?狂..." #将字符串设置好
def process(string): #定义一个字符处理函数,设置参数string,是有待处理的字符串。
print ( "python使我快乐!!" )
print ( "未处理的字符串:" ,string)
varchar = '‘' “”: #,!【】,&#|?|,&;;?:"'#人为设定字符集合
var_ls = []
for var in varchar:
var_ls.append(var)
print ( "这是当前的字符集合:" ,var_ls)
while true:
want = str ( input ( "是否需要增加新的字符/字符集合?(yes or no)" ))
if want = = 'yes' :
add_varchar = str ( input ( "请输入需要增加的新字符/字符集合:" ))
for var in add_varchar:
var_ls.append(var)
print ( "更新后的字符集合:" ,var_ls)
elif want = = 'no' :
break
else :
print ( "输入有误!!请重试!!" )
continue
ls = [] #定义一个列表用于存储拆散的字符
for s in string:
ls.append(s) #将字符串拆散存进列表中
for element in ls[:]:
if element in var_ls: #如果在字符集合内发现,则从列表中删除
ls.remove(element)
elif element not in var_ls:
continue
string = '' #定义字符串
for l in ls: #将列表中拆散的元素组合回去。
string = string + l
print ( "处理后的字符串:" ,string) #得到处理结果
process(string = strings) #调用函数,传入实参给形参。
|
代码的解释在注释中写了,大家如果对代码不理解可以和我私信探讨。
运行结果,如下图:
总结
到此这篇关于python中文本字符处理的文章就介绍到这了,更多相关python文本字符处理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_43408020/article/details/114789536