Python学习,python字符串的处理

Python学习,python字符串的处理_第1张图片

一、拆分含有多种分隔符的字符串

1.如何拆分含有多种分隔符的字符串

问题: 我们要把某个字符串依据分隔符号拆分不同的字段,该字符串包含多种不同的分隔符,例如:

s = "ab;cd|efg|hi,jkl|mnopq;rst,uvwxyz"

其中;,|,都是分隔符号,如何处理?

方法一: 连续使用str.split()方法,每次处理一种分隔符号

Python学习,python字符串的处理_第2张图片

方法二: 使用正则表达式的re.split()方法,一次性拆分字符串


Python学习,python字符串的处理_第3张图片

二、调整字符串中文本格式

1. 如何判断字符串a是否以字符串b开头或结尾

问题:某文件系统目录下有一系列文件:a.py,quicksort.c,stack.cpp,b.sh , 编写程序给其中所有.sh文件和.py文件加上用户可执行权限?

解决方案:

使用字符串中的str.startswith()和end.startswith()方法 (注意:多个匹配时参数使用元组)

Python学习,python字符串的处理_第4张图片

2.如何对字符串中文本的格式进行调整

问题: 某软件的log文件,其中日期格式为“yyyy-mm-dd”:

Python学习,python字符串的处理_第5张图片

我们想把其中日期改为美国日期的格式"mm/dd/yyyy",2017-05-08 ==> 05/08/2017 ,应如何处理?

解决方案:

使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组捕获每个部分内容,在字符串中调整各个组的捕获顺序。

Python学习,python字符串的处理_第6张图片


Python学习,python字符串的处理_第7张图片

三、字符串拼接

1.如何将多个小字符串拼接成一个大的字符串

问题:在程序中我们将各个参数按次序收集到列表中: ["<0112>", "<32>","<1024x768>","<60>" ],要把各个参数拼接成数据报进行发送"<0112><32><1024x768><60>"

解决方案:

方法一:迭代列表,连续使用“+”操作依次拼接每一个字符串

方法二:使用str.join()方法,更加快速的拼接列表中所有字符串

In [5]: ''.join(pl)Out[5]: '<0112><32><1024x768><60>'

有个列表l = ['abc',123,45,'xyz'],如何让123和45以字符串的方式拼接

Python学习,python字符串的处理_第8张图片


Python学习,python字符串的处理_第9张图片

四、字符串居中对齐

1.如何对字符串进行左、右、居中对齐

问题: 某个字典存储了一系列属性值

{ "loDist":100.0, "smartCull":0.04, "farclip":477}

在程序中想以工整的格式进行输出,如何处理?

解决方案:

方法一: 使用字符串的str.ljust(),str.rjust(),str.center()进行,右,居中对齐

方法二: 使用format方法,传递类似'<20','>20','^20'参数完成同样任务

Python学习,python字符串的处理_第10张图片

2.去掉不需要的字符串

问题:

1.过滤掉用户输入中前后多余的空白字符: ' [email protected] '

2.过滤某windows下编辑文本中的' ': 'hello world '

3.去掉文本中的unicode组合符号(音调):u'zǒu'

解决方案:

方法一: 字符串strip(),lstrip(),rstrip()方法去掉字符串两端字符

方法二:删除单个固定位置的字符,可以使用切片+拼接的方式

方法三:字符串的replace方法或正则表达式re.sub()方法删除任意位置字符

方法四:字符串translate()方法,可以同时删除多种不同字符

Python学习,python字符串的处理_第11张图片

你可能感兴趣的:(Python学习,python字符串的处理)