Python字符串处理
相关特性
- 属于Python基本数据类型和结构的一种。
- 本身是不可变的数据类型。
- 有很多内置的方法
字符串连接
join
方法1
2
3
4a = ['a','b','c','d']
content = ''
content = ''.join(a)
print content用字符串的占位符替换
1
2
3
4str = ['a','b','c','d']
content = ''
content = '%s%s%s%s' % tuple(str)
print content
字符串截取
从左到右索引默认0开始的,最大范围是字符串长度少1
1
2
3str = 'Python'
print str[0]
# P是从右到左索引默认-1开始的,最大范围是字符串开头
1
2
3str = 'Python'
print str[-1]
# n
字符串替换
replace
1
2
3str = 'hello word'
b = str.replace('word','python')
print b用正则来替换
1
2
3
4
5import re
str = 'hello world'
info = re.compile('word')
b = info.sub('python', a)
print b
字符串比较
cmp
比较两个对象,并根据结果返回一个整数。cmp(x,y)如果X< Y,返回值是负数 如果X>Y 返回的值为正数。1
2
3
4sStr1 = 'strch'
sStr2 = 'strchr'
print cmp(sStr1,sStr2)
#-1
字符串查找
find()
方法1
2
3
4
5
6
7
8info = 'abca'
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
info = 'abca'
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3
info = 'abca'
print info.find('333')##返回-1,查找不到返回-1index()
方法python 的
index
方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1。1
2
3info = 'abca'
print info.index('a')
print info.index('33')
字符串分隔
split
1
2
3info = 'name:haha,age:20$name:python,age:30$name:fef,age:55'
content = info.split('$')
print content
字符串反转
通过步进反转[::-1]
1
2
3a = 'abcd'
b = a[::-1]##[::-1]通过步进反转
print b
字符串追加和拼接
元组拼接
1
2
3m = 'python'
astr = 'i love %s' % m
print astr字符串的format方法
1
2
3m = 'python'
astr = "i love {python}".format(python=m)
print astr字典格式化字符串
1
2
3m = 'python'
astr = "i love %(python)s " % {'python':m}
print astr
字符串大小写
1
2
3
4
5
6
7S = 'abc'
S.upper()#S中的字母大写
S.lower() #S中的字母小写
S.capitalize() #首字母大写
S.istitle() #S是否是首字母大写的
S.isupper() #S中的字母是否便是大写
S.islower() #S中的字母是否全是小写字符串去掉空格
通过
strip()
,lstrip()
,rstrip()
方法去除字符串的空格1
2
3S.strip()#去掉字符串的左右空格
S.lstrip()#去掉字符串的左边空格
S.rstrip()#去掉字符串的右边空格字符串其他方法
1
2
3
4
5
6
7
8
9
10
11S.center(width, [fillchar]) #中间对齐
S.count(substr, [start, [end]]) #计算substr在S中出现的次数
S.expandtabs([tabsize]) #把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
S.isalnum() #是否全是字母和数字,并至少有一个字符
S.isalpha() #是否全是字母,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.join()#S中的join,把列表生成一个字符串对象
S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar]) #右对齐
S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
S.swapcase() #大小写互换
案例
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
37
38
39
40
41
42str = "Hello My friend"
#字符串是一个整体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。
#子字符串的提取
str[:6]
#字符串包含判断操作符:in,not in
"He" in str
"she" not in str
#string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数
S.lowercase()
S.capitalize() #首字母大写
S.lower() #转小写
S.upper() #转大写
S.swapcase() #大小写互换
S.split(str, ' ') #将string转list,以空格切分
S.join(list, ' ') #将list转string,以空格连接
#处理字符串的内置函数
len(str) #串长度
cmp("my friend", str) #字符串比较。第一个大,返回1
max('abcxyz') #寻找字符串中最大的字符
min('abcxyz') #寻找字符串中最小的字符
#string的转换
float(str) #变成浮点数,float("1e-1") 结果为0.1
int(str) #变成整型, int("12") 结果为12
int(str,base) #变成base进制整型数,int("11",2) 结果为2
long(str) #变成长整型,
long(str,base) #变成base进制长整型,
#字符串的格式化(注意其转义字符,大多如C语言的,略)
str_format % (参数列表) #参数列表是以tuple的形式定义的,即不可运行中改变
>>>print ""%s's height is %dcm" % ("My brother", 180)
#结果显示为 My brother's height is 180cm