python学习之字符串常用方法

#find()、rfind()、index()、rindex()、count()
s = "apple,peach,banana,peach,pear"
#返回peach第一次出现的位置
s.find("peach")
#从字符串尾部向前查找,返回第一次出现的位置
s.rfind("p")
#指定起始位置开始查找
s.find("peach",6)
#在指定范围里查找,如果找到了就返回出现的位置,若没找到,返回-1
s.find("peach",6,20)

#返回一个字符串在另一个字符串里面首次出现的位置
s.index("peach")
#返回一个字符串在另一个字符串里面最后一次出现的位置
s.rindex("peach")

#返回一个字符串在另一个字符串中出现的次数
s.count("p")



#split()、rsplit()、partition()、rpartition()
str = "apple,peach,banana,pear"
#从左往右或者从右往左按照指定的分隔符分割,返回列表,输出结果一样
str.split(',')
str.rsplit(',')
['apple','peach','banana','pear']
#从左往右或者从右往左以指定的第一次出现的分隔符分割将字符串分割成三部分,分隔符前的字符串、分隔字符串、分隔符后的字符串,如果指定的分隔符不存在,则返回园字符串和两个空字符串
str.partition('banana')
['apple,peach,','banana',pear']
str.rpartition('banana')
['apple,peach,','banana',',pear']


s = '\n\nhello\t\t world \n\n\n My name is Dong    '
#指定最大分割次数,不指定分隔符,则任何空白符(包括空格、换行符、制表符等)都是分隔符
s.split(None,1)
['hello','world \n\n\n My name is Dong    ']
s.rsplit(None,1)
['\n\nhello\t\t world \n\n\n My name is','Dong']
s.split(None,2)
['hello','world','My name is Dong    ']
s.rsplit(None,2)
[\n\nhello\t\t world \n\n\n My name','is','Dong']
#最大分割次数如果大于可分割次数时无效,即全部分割
s.split(maxsplit=6)
['hello','world','My','name','is','Dong']



#字符串连接方法,不推荐使用+来连接,优先使用join()方法
li = ['apple','peach','banana','pear']
','.join(li)
'apple,peach,banana,pear'
'-'.join(li)
'apple-peach-banana-pear'


#maketrans()用来生成字符映射表
#translate()用来根据字符映射表中定义的对应关系转换字符串并替换其中的字符
table = str.maketrans('abcdef','123456')
s = 'python is a great programming language.'
print(s.translate(table))
'python is 1 gr51t progr1mming l1ngu1g5.'
#注意,此时s的值并没有改变



import string
#小写字母
lower = string.ascii_lowercase
#大写字母
upper = string.ascii_uppercase
#所有字母
letters =  string.ascii_letters
#数字字符
print(string.digits)
#标点符号
print(string.punctuation)


#strip()、rstrip()、lstrip()
#删除字符串两边的空白字符串,包括换行、空格、制表符
'    abc        '.strip()#输出'abc'
'\n\n hello word\t \t'.strip()#输出'hello word'
#删除指定字符
'aaaassssssssddf'.strip('a')#输出'ssssssssddf'
'aaaassssssssddf'.strip('af')#输出'ssssssssdd'
#删除字符串有段指定字符
'aaaassssssssddfaaaaaa'.rstrip('a')#输出'ssssssssddfaaaaaa'
#删除字符串左边指定字符
'aaaassssssssddfaaaaaa'.lstrip('a')#输出''aaaassssssssddf'
#字符串不在两侧,所以不删除
'aaaasssssffffsssddfaaaaaa'.lstrip('af'),#输出'sssssffffsssdd'




#replace(),代替目标字符
'中国,中国'.replace('中国','中华人民共和国')#输出['中华人民共和国','中华人民共和国']
#max(),最大字符
max("hello world")#输出'w'
#min(),最小字符
min("hello world")#输出' ',最小字符是空格
#zip(),打包
list(zip('hello world','hello world'))#输出[('h', 'h'), ('e', 'e'), ('l', 'l'), ('l', 'l'), ('o', 'o'), (' ', ' '), ('w', 'w'), ('o', 'o'), ('r', 'r'), ('l', 'l'), ('d', 'd')]
#由于zip()打包后的类型是“包”,所以直接输出不了,必须转换成list才能输出

 

posted @ 2019-06-12 19:43  撑死算工伤吗  阅读(334)  评论(0编辑  收藏  举报