python学习笔记之字符串操作
1 字符串操作
1.1 字符串是一种线性结构
l
e
a
r
n
p
y
t
h
o
n
1.2 字符串是不可变的
'e'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-74f3af69d7f0> in <module>()
----> 1 a[1] = 'L'
TypeError: 'str' object does not support item assignment
1.3 字符串格式化
以元组方式
1
| '%s learn python' % ('zhaochj',)
|
'zhaochj learn python'
1
| '%s learn python,%s is a man' % ('zhaochj','zhaochj')
|
'zhaochj learn python,zhaochj is a man'
以字典方式
1
| '%(name)s learn python' % {'name':'zhaochj'}
|
'zhaochj learn python'
1
| '%(name)s learn python,%(name)s is a man' % {'name':'zhaochj'}
|
'zhaochj learn python,zhaochj is a man'
1
| '{0} learn python,{name} is a man'.format('zhaochj',name='he')
|
'zhaochj learn python,he is a man'
1.4 字符串的常用操作
1
| lst = ['zhoachj','learn','python']
|
'zhoachj learn python'
'zhoachj_learn_python'
1 2 3 4 5
| ret = '' for s in lst: ret += s ret += ' ' ret
|
'zhoachj learn python '
- 字符串切割,常用操作有:
split
,rsplit
,splitlines
,partition
,rpartition
split,从左往右按照给定的标准切割字符串,默认是以空格为切割,返回一个列表
1
| s = 'zhaochj learn python'
|
['zhaochj', 'learn', 'python']
['zha', 'chj learn pyth', 'n']
['zha', 'chj learn python']
1
| User = 'root:x:0:0:root:/root:/bin/bash'
|
['root', 'x:0:0:root:/root:/bin/bash']
1
| username,_ = User.split(':',1)
|
'root'
'root'
rsplit,从右往左按照给定的标准切割字符串,默认是以空格为切割,返回一个列表
1
| User2 = 'root:x:0:0:root:/root:/bin/bash'
|
['root:x:0:0:root:/root', '/bin/bash']
splitlines,一般是用来处理多行的字符串对象,它以换行符(\n)为标准切割多行字符串,并可给定一个keepend
值来是否保留\n
这个换行符,默认是False
,表示不保留换行符。
1 2 3 4
| str1 = ''' I love python I also love linux '''
|
'\nI love python\nI also love linux\n'
['', 'I love python', 'I also love linux']
['\n', 'I love python\n', 'I also love linux\n']
['', 'I love python', 'I also love linux']
partition,表示传入一个分隔符号,返回一个元组,元组里第一个元素是分割后的第一个字符,第二个元素是分隔符号,第三个元素切割后剩下的所有字符。(切割顺序是从左往右)
1
| User3 = 'root:x:0:0:root:/root:/bin/bash'
|
('root', ':', 'x:0:0:root:/root:/bin/bash')
rpartition,表示传入一个分隔符号,返回一个元组,元组里第一个元素是分割后的第一个字符,第二个元素是分隔符号,第三个元素切割后剩下的所有字符。(切割顺序是从右往左)
1
| User4 = 'root:x:0:0:root:/root:/bin/bash'
|
('root:x:0:0:root:/root', ':', '/bin/bash')
- 字符串修改–字符的大小写修改,准确的说不应该叫修改,因为字符串是不可变对象。常用的操作有:
capitalize
,title
,lower
,upper
,swapcase
capitalize,表示把字符串的首字母修改成大写,其他的所有字符都修改成小写
'I love python'
140153643362864
140153643363440
title,表示把字符串中所有单词的首字母修改成大写,之外的所有符全部为小写
'I Love Python'
upper,表示把所有字符都修改成大写
'I LOVE PYTHON'
lower,表示把所有字符修改为小写
'i love python'
swapcase,表示把字符串的字符的大小写反转,即大写修改成小写,小写的修改成大写
'i LoVe pYthon'
'I lOvE PyTHON'
- 字符串修改–填充,常用方法有:
center
,ljust
,rjust
center,两边填充,此方法接收一个填充宽度,默认以此宽度个空格来填充字符,也可指定填充字符
' python '
'*******python******'
ljust,左移右填充,表示把字符串左移后在右边填充指定字符,与center
方法类似,接收一个填充宽度,默认是以空格填充,也可以指定填充字符
'python'
'python '
'python****'
rjust,右移左填充,表示把字符串右移后在左边填充指定字符,与center方法类似,接收一个填充宽度,默认是以空格填充,也可以指定填充字符
'python'
' python'
'****python'
- 字符串修改–清除,常用方法有:
strip
,rstrip
,lstrip
_strip_方法,表示清除字符串两边的一个空格或多个空格,换行符也同样适用
' python \n '
'python'
_rstrip_方法,表示只清除字符串右边的空格或换行符号(一个或多个)
' python'
_lstrip_方法,表示只清除字符串左边的空格或换行符号(一个或多个)
'python \n '
- 字符串判断,常用方法有:
startswith
,endswith
,isdigit
,istitle
,islower
,isupper
startswith,表示判断一个字符串是以指定字符开头,返回bool值,可指定搜索判断的范围。
1
| str6 = 'Python is a programming language'
|
1
| str6.startswith('Python')
|
True
1
| str6.startswith('is',7,30)
|
True
endswith,表示判断一个字符串是以指定字符结尾,返回bool值,可指定搜索判断的范围。
1
| str6.endswith('language')
|
True
True
isdigit,判断一个字符是不是数字,返回bool值
True
istitle,判断字符串中每一个单词是否都都以大写字母开始,返回bool值
True
False
islower,判断所有字符都是小写字母
isupper,判断所有字符都是大写字母
'I love Pyton'
False
False
True
True
- 字符串查找与替换,常用方法:
count
,index
,rindex
,find
,rfind
,replace
_count_方法,表示统计指定字符出现的次数,可指定一个范围
1
| str10 = 'I love python,I also love linux'
|
4
3
2
_index_方法,从左往右查找,返回指定字符的索引,可指定范围
'I love python,I also love linux'
3
11
'o'
7
_rindex_方法,表示从右往左查找,返回查找字符的索引值,当然也可指定一个范围
'I love python,I also love linux'
22
7
_find_方法,表示从左往右
查找一个字符,若查找到了则返回相应的索引值,若没有查找到则返回’-1’,不会像index
方法样会抛出异常,可指定范围查找
'I love python,I also love linux'
2
21
-1
_rfind_方法,表示从右往左
查找一个字符,若查找到了则返回相应的索引值,若没有查找到则返回’-1’,不会像index方法样会抛出异常,可指定范围查找
'I love python,I also love linux'
21
_replace_方法,表示替换指定的字符,可指定替换的次数
'I love python,I also love linux'
1
| str10.replace('love','like')
|
'I like python,I also like linux'
1
| str10.replace('love','like',1)
|
'I like python,I also love linux'