您的位置:

python中的字符串处理方法(python 字符串处理函数)

本文目录一览:

Python数据分析笔记#7.3.1 字符串对象方法

「目录」

数据清洗和准备

Data Cleaning and Prepration

-------- 字符串对象方法

字符串对象方法

Python能够成为流行的数据处理语言的部分原因是其易于处理字符串和文本。大部分文本运算都直接做成了字符串对象的内置方法。

split方法可以 通过指定分隔符对字符串进行切片 。

例如,以逗号分割的字符串可以用split拆分成数段:

strip可以 去除字符串头尾指定的字符 ,默认是空白符或换行符。

strip常常与split一起使用:

利用 加法可以将字符串连接起来 :

但这种方式并不实用,毕竟字符串多了就很麻烦。一种更快 更符合Python风格的方式是是使用join方法 ,我们向join方法中传入一个列表或元组:

检测子串的最佳方法是利用Python的in关键字,还可以使用index和find。

index和find会 查找指定值的首次出现的位置 。

find和index的区别是:若找不到字符串,index将会引发一个 异常 ,find则会返回 -1 :

count可以 返回指定字串的出现次数

replace用于将 指定模式替换为另一个模式 (replace will substitute occurrences of one pattern for another)

再记录几个Python内置的字符串方法吧。

startswith和endswith: 若字符串以某个前缀(后缀)开头,则返回True :

lower和uppe: 分别将字母字符转换为小写或大写 。

ljust和rjust: 用空格(或其他字符)填充字符串的空白侧以返回符合最低宽度的字符串 。

这章终于还剩两节就结束了。

-END-

python - 去除字符串中特定字符

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

s.strip()    # 删除两边(头尾)空字符,默认是空字符

s.lstrip()    # 删除左边头部空字符

s.rstrip()    # 删除右边尾部空字符

s.strip('+-')    # 删除两边(头尾)加减字符

s.strip('-+').strip()   # 删除两边(头尾)加减和空字符

s.strip('x')    # 删除两边特定字符,例如x

二、去掉字符串中间字符: replace(), re.sub()

# 去除\n字符

s = '123\n'

s.replace('\n', '')

import re

# 去除\r\n\t字符

s = '\r\nabc\t123\nxyz'

re.sub('[\r\n\t]', '', s)

三、转换字符串中的字符:translate()

s = 'abc123xyz'

# a -  x, b - y, c - z,建立字符映射关系

str.maketrans('abcxyz', 'xyzabc')

# translate把其转换成字符串

print(s.translate(str.maketrans('abcxyz', 'xyzabc')))

参考链接:

Python中中文字符串怎么处理?

如果处理的字符串中出现中文表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:

1、decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;

2、encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;

3、unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。

转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。

另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。

不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:

1、确定源字符的编码格式,假设是utf8;

2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');

3、把处理后字符串用encode()编码成指定格式。

python之字符串内置函数

1. 字符串字母处理

2. 字符串填充

str.ljust(width, fillchar)、str.center(width, fillchar)、str.rjust(width, fillchar)

返回一个指定的宽度 width 「居左」/「居中」/「居右」的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。

3,字符串计数

str.count(sub, start, end)

#统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

start, end遵循**“左闭右开”**原则。

4. 字符串位置

str.endswith(suffix, start, end)和str.startswith(substr, beg, end)

#判断字符串是否以指定后缀结尾/开头,如果以指定后缀「结尾」/「开头」返回 True,否则返回 False。

5. 字符串查找

6. 字符串判断

7. 字符串拼接

str.join() #将序列中的元素以指定的字符连接生成一个新的字符串。

s1 = "-" s2 = "" seq = ("r", "u", "n", "o", "o", "b")

# 字符串序列 print (s1.join( seq )) print (s2.join( seq )) r-u-n-o-o-b runoob

8. 统计字符串长度

str.len() #返回对象(字符、列表、元组等)长度或项目个数。

9. 去除字符两侧空格

str.lstrip()、str.rstrip()、str.strip() #截掉字符串「左边」/「右边」/「左右」两侧的空格或指定字符。

str0 = ' Hello World!' str0.lstrip() 'Hello World!' str1 = 'aaaa Hello World!' str1.lstrip('a') ' Hello World!'

10. str.maketrans(intab, outtab)和str.translate(table)

str.maketrans()创建字符映射的转换表

str.maketrans()根据参数table给出的表转换字符串的字符。

str.maketrans()传入的也可以是字典

tab = {'e': '3', 'o': '4'} trantab = str.maketrans(tab) str0.translate(trantab) 'H3ll4 W4rld!'

11. 字符串替换

str.replace(old, new, max)

12. 字符分割

str.split(str, num)

13. 字符填充

str.zfill(width)

返回指定长度的字符串,原字符串右对齐,前面填充0。

python 字符串提取信息方法总结

在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。

格式: str[beg:end:step]

描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1

举例:

print(str[::2]) //::这里表示整个字符串,每两个位置提取一个

print(str[1:3]) //提取第2个到第3个

print(str[2::]) //截取2 - 末尾的字符

本小节介绍了,处理字符串经常用到的一些函数方法。

语法: str.find(str, beg=0, end=len(string))

描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

语法: str.split(str="", num=string.count(str)).

描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串列表,该方法可以讲字符串转化为列表处理。

另外的: str.splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法: str.partition(str)

描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

语法: str.replace(old, new, max)

描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法: str.strip([chars]);

描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法: str.join(sequence)

描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。

re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re

语法: re.search(pattern, string, flags=0)

描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。

语法: re.sub(pattern, repl, string, count=0, flags=0)

描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法: pattern.findall(string, pos, endpos)

描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。

模式字符串使用特殊的语法来表示一个正则表达式: