python中针对字符串的操作函数多种多样,如连接、比较、大小写转换、字符串计数函数等,下面列出python常用的字符串操作函数:
1、对字符串排序,由于字符串为不可变数据类型,因此需要把字符串转变为list(),然后进行排序
list1 = list(str1),python中排序函数有两种,sorted()和sort(),其中list1.sort()没有返回值,sorted(list1)有返回值
2、字符串()可以与列表()都可以转换为集合(),去除重复元素
set1=set(str1)
set2=set(str2)
3、以某种连接符连接字符串或者列表中的每一个元素,比如
newlist = ','.join(list1)
4、连接两个字符串
newlist = list1+list2
5、统计某个字符出现的次数
num = str1.count()
6、大小写转换函数及验证函数
小写转大写: str2 = str1.upper()
大写转小写:str2 = str1.Lower()
首字母大写:str2 = str1.Captialize()
小写验证:str1.islower()
大写验证:str1.isupper()
首字母是否大写:str1.istitle()
7、验证字符串是否全由数字或者字符或者二者混合组成
数字验证:str1.isdigit()
字母验证:str1.isalpha()
数字或者字母混合组成:str1.isalnum()
8、一个字符串是否包含另一个字符串:
str1.find(str2)
str1.index(str2)
二者都返回被包含字符串的索引,不同之处在于find函数如果没有查找到字符串的时候返回-1,index如果没有查找到字符串的时候报错
9.常用的其它函数还有
指定长度填充特定字符:center(length,填充字符串str1)
返回一个原字符串左对齐:ljust(length,填充字符串str1)
返回一个原字符串右对齐:rjust(length,填充字符串str1)
判断字符串是否以指定后缀结尾:endswith(...)
检测字符串是否只由空格组成: isspace(...)
用于截掉字符串左边的空格或指定字符:lstrip(’指定的字符串‘)
删除 string 字符串末尾的指定字符(默认为空格):rstrip(...)
用于移除字符串头尾指定的字符(默认为空格)
strip(...)
根据指定的分隔符将字符串进行分割(返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串)
S.partition(sep) ->(head, sep, tail)
把字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
S.replace(old, new[,count])
返回字符串最后一次出现的位置,如果没有匹配项则返回-1,S.replace(old, new[,count]) -> string
通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔 num 个子字符串
S.split([sep [,maxsplit]])-> list ofstrings
用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end指定值,则在指定范围内检查。
S.startswith(prefix[,start[, end]]) ->bool
按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
S.splitlines(keepends=False)-> list ofstrings
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
S.title() -> string
根据参数table给出的表(包含 256 个字符)转换字符串的字符, 并返回翻译后的字符串。要过滤掉的字符放到del 参数中
translate(...)
S.translate(table [,deletechars])->string
语法:
str.translate(table[, deletechars])
table -- 翻译表,翻译表是通过maketrans方法转换而来。
deletechars -- 字符串中要过滤的字符列表。
1
2
3
4
5
6
7
8
9
|
>>>
from
string
import
maketrans
suchas
=
maketrans(
'sm'
,
'@$'
)
>>> s
=
'this is sam\'s dog'
>>> s
"this is sam's dog"
>>> s.translate(suchas)
"thi@ i@ @a$'@ dog"
>>> s.translate(suchas,
'dog'
) 去除d,o,g字符
"thi@ i@ @a$'@ "
|
最后:字符串与list有许多相似之处,两者都属于序列类型。因此,对属于序列的操作都适合两者,比如各种切片操作。
从0开始,右端不包括,list[-1]取列表中的最后一个元素,list中常用的两个函数是append()与sort(reverse=False)默认升序排列。
二者主要的不同在于字符串为不可变类型,列表为可变数据类型,因此可以直接对列表进行修改,如需对str进行修改,则需要重新生成新的str对象,无法对str进行直接的修改。