1.大小写转换
lower()–全部变为小写,upper()–全部变成大写
>>> print('ab XY'.lower())
ab xy
>>> print('ab XY'.upper())
AB XY
title() --每个单词首字母为大写,其余小写,capitalize()–整个字符串的首字母为大写,其余小写
>>> print('ab XY'.title())
Ab Xy
>>> print('abc DE'.capitalize())
Abc de
swapcase()–对字符串做大小写转换,大变小,小变大
>>> print('abc XYZ'.swapcase())
ABC xyz
2.isxxx
isdigit()–判断是否全是数字,isalpha()–判断是否全是字母,isalnum()–判断是否是数字或字母
>>> print('34'.isdigit())
True
>>> print('a34'.isalnum())
True
is
lower()–判断是否全小写,isupper()–判断是否全大写
>>> print('a34'.islower())
True
>>> print('AB'.isupper())
True
istitle()–判断是否每个单词的首字母大写
>>> print('Aa_Bc'.istitle())
True
>>> print('Aa bc'.istitle())
False
isspace()–判断字符串是否为空白(空格、制表符、换行符等)
>>> print(' '.isspace())
True
>>> print(' \t'.isspace())
True
>>> print('\n'.isspace())
True
3.填充
center(填充后的宽度,填充物【默认空格】)–将字符串居中,左右用填充物填充,使字符串长度为设定长度
>>> print('ab'.center(4,'_'))
_ab_
>>> print('ab'.center(4))
ab
ljust(填充后的宽度,填充物【默认空格】)–填充在字符串的右边rjust(填充后的宽度,填充物【默认空格】)–填充在字符串的左边
>>> print('xyz'.ljust(5,'_'))
xyz__
>>> print('xyz'.rjust(5,'_'))
__xyz
zfill(填充后的宽度)–用0填充在字符串的左边。若字符串前面有+或-,0填充在这个后面。
>>> print('abc'.zfill(5))
00abc
>>> print('-abc'.zfill(5))
-0abc
>>> print('+abc'.zfill(5))
+0abc
以上,若宽度小于字符串本身的长度,直接返回原字符串
4.子串搜索
count(需查找的子串,开始,结束)–返回出现的次数,指定从哪里开始哪里结束。索引从0开始算,不含end边界
# 次数1,因为不包括end,所以查找的范围为'yabxyx'
>>> print('xyabxyxy'.count('xy',1,7))
1
endswith(子串,开始,结束)–检查是否以该子串结尾,可指定搜索边界。
# False,因为搜索范围为'abcxy'
>>> print('abcxyz'.endswith('xyz',0,5))
False
startswith(子串,开始,结束)–检查是否以该子串开头,可指定搜索边界。该子串可以是一个元组tuple,只要其中任意一个元素满足条件,就返回true.
find(子串,开始位置,结束位置)–搜索是否包含子串,包含的返回索引位置,否则返回‘-1’
rfind(子串,开始位置,结束位置)–返回搜索到最右面子串的位置,如果只有一个或没有,就和find相同
>>> print('xyzabcabc'.find('bc'))
4
>>> print('xyzabcabc'.rfind('bc'))
7
index(子串,开始位置,结束位置)–搜索是否包含子串,包含的返回索引位置,否则抛出ValueError错误
rindex(子串,开始位置,结束位置)–返回搜索到最右面子串的位置,如果只有一个或没有,就和index相同
>>> print('xyzabcabc'.rindex('bcd'))
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found
使用in操作符来判断字符串S是否包含子串sub,它返回的不是索引位置,而是布尔值。
>>> 'xy' in 'abxycd'
True
>>> 'xyz' in 'abxycd'
False
5.替换
replace(old,new,count)–将old替换为new,若给定count,则表示只替换前count个old子串。搜索不到old,直接返回原字符串 。
>>> print('abcxyzoxy'.replace('xy','XY'))
abcXYzoXY
>>> print('abcxyzoxy'.replace('xy','XY',1))
abcXYzoxy
>>> print('abcxyzoxy'.replace('mn','XY',1))
abcxyzoxy
6.分割
partition(子串)、rpartition(子串)–搜索子串,并从该子串处对整个字符串进行分割最后返回一个三元素的元组。
partition()从左边第一个子串分割,rpartition()从右边第一个子串分割# 搜索到多个sep时,分别从左第一个、右第一个sep分割。
>>> print('abcxyzxyopq'.partition('xy'))
('abc', 'xy', 'zxyopq')
>>> print('abcxyzxyopq'.rpartition('xy'))
('abcxyz', 'xy', 'opq')
# 搜索不到sep
>>> print('abcxyzxyopq'.partition('xyc'))
('abcxyzxyopq', '', '')
>>> print('abcxyzxyopq'.rpartition('xyc'))
('', '', 'abcxyzxyopq')
7.join
(iterable)–将可迭代对象(iterable)中的字符串使用S连接起来。
注意,iterable中必须全部是字符串类型,不能包含数字或其他类型例如:字符串
>>> L='python'
>>> '_'.join(L)'
p_y_t_h_o_n'
元组
>>> L1=('1','2','3')
>>>> '_'.join(L1)
'1_2_3'
集合。注意,集合无序。
>>> L2={'p','y','t','h','o','n'}
>>> '_'.join(L2)
'n_o_p_h_y_t'
列表
>>> L2=['py','th','o','n']
>>> '_'.join(L2)
'py_th_o_n'
字典
>>>L3={'name':"malongshuai",'gender':'male','from':'China','age':18}>>> '_'.join(L3)
'name_gender_from_age' #(将key连接起来)
iterable参与迭代的部分必须是字符串类型,不能包含数字或其他类型。
>>> L1=(1,2,3)
>>> '_'.join(L1)
Traceback (most recent call last):
File "", line 1, in
TypeError: sequence item 0: expected str instance, int found
以下两种也不能join。
>>> L1=('ab',2)
>>> L2=('AB',{'a','cd'})
8.修剪:strip、lstrip、rstrip
strip([chars])–移除左右两边的字符char
lstrip([chars])–移除左边的字符char
rstrip([chars])–移除右边的字符char
若不指定chars或指定为none,则默认移除空白(空格,制表符,换行符),唯一需要注意的是,chars可以是多个字符序列。在移除时,只要是这个序列中的字符,都会被移除。
例如:
1.移除单个字符或空白。
>>> ' spacious '.lstrip()
'spacious '
>>> ' spacious '.rstrip()
' spacious'
>>> 'spacious '.lstrip('s')
'pacious '
>>> 'spacious'.rstrip('s')
'spaciou'
2.移除字符中的字符。
>>> print('www.example.com'.lstrip('cmowz.'))
example.com
>>> print('wwwz.example.com'.lstrip('cmowz.'))
example.com
>>>print('wwaw.example.com'.lstrip('cmowz.'))
aw.example.com
>>> print('www.example.com'.strip('cmowz.'))
'example'
由于www.example.com的前4个字符都是字符序列cmowz.中的字符,所以都被移除,而第五个字符e不在字符序列中,所以修剪到此结束。同理wwaw.example.com中第3个字符a不在字符序列中,所以修剪到此结束。