快捷搜索:
来自 计算机编程 2019-08-03 17:46 的文章
当前位置: 67677新澳门手机版 > 计算机编程 > 正文

【67677新澳门手机版】常见的字符串操作,字符串

1、strip、lstrip和rstrip

一、查看字符串的内建函数

描述:

用来移除字符串左右两侧、侧面、左侧钦命的字符(默感觉空白符,比方:/n, /r, /t, ' ')或字符种类。

>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
 '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
 '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__',
 '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format',
 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace',
 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

In [1]: a = '123'

In [2]: a.
a.capitalize    a.endswith      a.index         a.isidentifier  a.istitle       a.lstrip        a.rindex        a.split         a.title
a.casefold      a.expandtabs    a.isalnum       a.islower       a.isupper       a.maketrans     a.rjust         a.splitlines    a.translate
a.center        a.find          a.isalpha       a.isnumeric     a.join          a.partition     a.rpartition    a.startswith    a.upper
a.count         a.format        a.isdecimal     a.isprintable   a.ljust         a.replace       a.rsplit        a.strip         a.zfill
a.encode        a.format_map    a.isdigit       a.isspace       a.lower         a.rfind         a.rstrip        a.swapcase 

语法:

str.strip([chars])
str.lstrip([chars])
str.rstrip([chars])

二、常用的字符串内建函数

例如:

1)移除单个字符或空白:

67677新澳门手机版 167677新澳门手机版 2

>>> '  abc '.strip()
'abc'

>>> '  abc'.lstrip()
'abc'

>>> 'abc  '.rstrip()
'abc'

>>> 'abc'.strip('a')
'bc'

>>> 'abc'.lstrip('a')
'bc'

>>> 'abc'.rstrip('c')
'ab'

View Code

2)移除三个字符串列表(是否会去除的前提是从字符串最开端和最末尾是否带有要刨除的字符,假诺有就能够接二连三管理,未有的话是不会删除中间的字符的):

67677新澳门手机版 367677新澳门手机版 4

>>> 'abc@163.com'.strip('cawm')
'bc@163.co'

>>> 'abc@163.com'.lstrip('cawm')
'bc@163.com'

>>> 'abc@163.com'.rstrip('cawm')
'abc@163.co'

View Code

1、capitalize,字符串的首先个字符大写

 2、大小写转变lower、upper、title、capitalize、swapcase**

>>> a = 'today is a good day.'
>>> a.capitalize()
'Today is a good day.'

描述:

lower:将字符串中的大写字母转为小写字母。

upper:将字符串中的小写字母转为大写字母。

title:将持有单词首字母转为大写,别的字母均转为小写。

capitalize:将字符串的第三个字母转为大写,其余字母转为小写。

swapcase:将字符串做大小写字母转变(大写->小写,小写->大写)

2、 casefold,将有所字符小写,Unicode全部字符均适用

语法:

str.lower()
str.upper()
str.title()
str.capitalize()
str.swapcase()
>>> b
'TODAY IS A GOOD DAY.'
>>> b.casefold()
'today is a good day.'

例如:

67677新澳门手机版 567677新澳门手机版 6

>>> 'aBcDe'.upper()
'ABCDE'

>>> 'aBcDe'.lower()
'abcde'

>>> 'thIs is a exaMple'.title()
'This Is A Example'

>>> 'this is A example'.capitalize()
'This is a example'

>>> 'aBcDe'.swapcase()
'AbCdE'

View Code

3、lower,将装有字符小写,只适用ASCii

 3、find、index、rfind、rindex

>>> b
'TODAY IS A GOOD DAY.'
>>> b.lower()
'today is a good day.'

描述:

find:检查评定字符串中是还是不是含有子字符串 str ,假使钦定 beg(起初) 和 end(停止) 范围,则检查是还是不是带有在内定范围内,假如带有子字符串再次回到初阶的索引值,不然重返-1。

index:检查评定字符串中是不是带有子字符串 str ,若是钦命 beg(起首) 和 end(结束) 范围,则检查是还是不是包涵在钦定范围内,该措施与 python find()方法一样,只可是假若str不在 string中会报叁个百般。

rfind:类似于find()函数,只然而是从字符串左边起先查找。

rindex:类似于index()函数,只不过是从字符串左侧早先查找。

4、upper,将具备字符大写

语法:

str.find(str, beg=0, end=len(string))

str.index(str, beg=0, end=len(string))
  • str -- 钦定检索的字符串
  • beg -- 开首索引,默感到0。
  • end -- 甘休索引,暗中认可为字符串的长度。
>>> a
'today is a good day.'
>>> a.upper()
'TODAY IS A GOOD DAY.'

例如:

67677新澳门手机版 767677新澳门手机版 8

>>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.find(str2, 0, len(str1))
... print(index)
10

>>> str1 = 'This is a example!'
... str2 = 'example'
... index = str1.index(str2, 0, len(str1))
... print(index)
10

View Code

5、center,重返三个原字符串居中,并动用空格填充至长度 width 的新字符串,语法:str.center(width[, fillchar])

 4、count

>>> a
'today is a good day.'
>>> a.center(40)
'          today is a good day.          '

描述:

总括字符串里某些字符出现的次数。可选参数为在字符串搜索的启幕与甘休地方。

6、count,用于总计字符串里某些字符出现的次数。可选参数为在字符串找寻的发端与甘休地点,语法:str.count(sub, start= 0,end=len(string))

语法:

str.count(sub, start= 0, end=len(string))
>>> a
'today is a good day.'
>>> a.count('a')
3
>>> a.count('a', 5, -2)
2

例如: 

67677新澳门手机版 967677新澳门手机版 10

>>> 'hello world'.count('o')
2

>>> 'hello world'.count('o', 5 , len('hello world'))
1

View Code

7、encode,以 encoding 钦点的编码格式编码字符串。errors参数能够钦定不相同的错误管理方案,语法:str.encode(encoding='UTF-8',errors='strict')

 5、replace

errors -- 设置分化错误的拍卖方案。默以为'strict',意为编码错误引起多少个UnicodeError。 别的大概得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及经过 codecs.register_error() 注册的另外值。

描述:

把字符串中的 old(旧字符串) 替换到new(新字符串),纵然钦点第多个参数max,则替换不超越 max 次。

>>> c = '你好'
>>> c.encode(encoding='utf-8')
b'xe4xbdxa0xe5xa5xbd'

语法:

str.replace(old, new[, max])
  • old -- 将被沟通的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超越 max 次。

8、decode,以 encoding 钦赐的编码格式解码字符串。暗许编码为字符串编码,语法:str.decode(encoding='UTF-8',errors='strict')

例如:

67677新澳门手机版 1167677新澳门手机版 12

>>> str = 'This is a example'
... nStr = str.replace('is', 'was')
... print(nStr)
Thwas was a example

>>> str = 'This is a example'
... nStr = str.replace('a', 'some', 1)
... print(nStr)
This is some example

View Code

>>> d
b'xe4xbdxa0xe5xa5xbd'
>>> d.decode(encoding='utf-8')
'你好'

 6、split、splitlines、partition、rpartition

描述:

split:钦赐分隔符对字符串进行切开,要是参数 num 有内定值,则仅相隔 num 个子字符串。

splitlines:按照行('r', 'rn', n')分隔,重临三个带有各行作为成分的列表,要是参数 keepends 为 False,不富含换行符,要是为 True,则保留换行符。

partition:依照钦点的相间符将字符串举行分割。假如字符串包括钦定的分隔符,则赶回二个3元的元组,第二个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符侧边的子串。

rpartition:类似于partition()函数,只可是是从侧面开端。

9、startwith,检查字符串是不是是以内定子字符串初阶,假诺是则赶回 True,不然重回 False。如果参数 beg 和 end 钦点值,则在钦赐范围内检查,语法:str.startswith(str, beg=0,end=len(string))

语法:

str.split(str="", num=string.count(str))
  • str -- 分隔符,默感到全体的空字符,包括空格、换行(n)、制表符(t)等。
  • num -- 分割次数。
str.splitlines([keepends])
  • keepends -- 在出口结果里是不是保留换行符('r', 'rn', n'),默以为 False,不含有换行符,借使为 True,则保留换行符。
str.partition(str)
  • str-- 钦赐的分隔符。
str.rpartition(str)
>>> a
'today is a good day.'
>>> a.startswith('today')
True
>>> a.startswith('day')
False
>>> a.startswith('day', 5)
False
>>> a.startswith('today', 5)
False

例如:

 

67677新澳门手机版 1367677新澳门手机版 14

>>> 'This nis a nexample'.split()
['This', 'is', 'a', 'example']

>>> 'This nis a nexample'.split(' ', 1)
['This', 'nis a nexample'

>>> 'This nis a nexample'.splitlines()
['This ', 'is a ', 'example']

>>> 'This nis a nexample'.splitlines(True)
['This n', 'is a n', 'example']

>>> 'www.example.com'.partition('.')
('www', '.', 'example.com')

>>> 'www.example.com'.rpartition('.')
('www.example', '.', 'com')

View Code

10、endwith,决断字符串是或不是以钦点后缀结尾,尽管以钦定后缀结尾重临True,不然再次回到False。可选参数"start"与"end"为搜索字符串的上马与甘休地方,语法:str.endswith(suffix[, start[, end]])

7、填充ljust、center、rjust

>>> a
'today is a good day.'
>>> a.endswith('day.')
True
>>> a.endswith('today.')
False
>>> a.endswith('day.', 5)
True

描述:

ljust:重临贰个点名的宽度 width 居左的字符串,fillchar 为填充的字符,默以为空格。借使钦点的尺寸小于原字符串的尺寸则赶回原字符串。

center:再次回到多少个点名的上涨的幅度 width 居中的字符串,fillchar 为填充的字符,默以为空格。即便内定的尺寸小于原字符串的尺寸则赶回原字符串。

rjust:重返三个点名的幅度 width 居右的字符串,fillchar 为填充的字符,默感觉空格。如若钦点的尺寸小于原字符串的尺寸则赶回原字符串。

11、expandtabs,把字符串中的 tab 符号('t')转为空格,tab 符号('t')暗许的空格数是 8,语法:str.expandtabs(tabsize=8)

语法:

str.ljust(width[, fillchar])
str.center(width[, fillchar])
str.rjust(width[, fillchar])
  • width -- 字符串的总宽度。
  • fillchar -- 填充字符。
>>> e = '   today is    a good day.     '
>>> e
'ttoday is ta good day.tt'
>>> e.expandtabs(4)
'    today is    a good day.     '

例如:

67677新澳门手机版 1567677新澳门手机版 16

>>> '[www.example.com]'.ljust(30, '*')
'[www.example.com]*************'

>>> '[www.example.com]'.rjust(30, '*')
'*************[www.example.com]'

>>> '[www.example.com]'.center(30, '*')
'******[www.example.com]*******'

>>> '[www.example.com]'.center(4, '*')
'[www.example.com]'

View Code

12、find,检查测验字符串中是还是不是含有子字符串 str ,如若内定 beg(开首) 和 end(截止) 范围,则检查是还是不是带有在钦点范围内,假设含有子字符串重临开头的索引值,不然再次来到-1,语法:str.find(str, beg=0, end=len(string))

 8、join

>>> a
'today is a good day.'
>>> a.find('a')
3
>>> a.find('a', 10)
17
>>> a.find('abc')
-1

描述:

将连串中的成分以钦赐的字符连接生成三个新的字符串。

13、index,检验字符串中是否带有子字符串 str ,如若钦点 beg(早先) 和 end(结束) 范围,则检查是还是不是包蕴在钦命范围内,该措施与 python find()方法一致,只但是纵然str不设有 string中会报四个百般,语法:str.index(str, beg=0, end=len(string))

语法:

str.join(sequence)
  • sequence -- 要连接的因素序列。
>>> a
'today is a good day.'
>>> a.index('a')
3
>>> a.index('a', 10)
17
>>> a.index('abc', 10)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ValueError: substring not found

例如:

67677新澳门手机版 1767677新澳门手机版 18

>>> '-'.join(('a', 'b', 'c'))
'a-b-c'

View Code

14、isalnum,检查评定字符串是或不是由字母和数字组合

 9、isalpha、isdigit、isalnum、isspace

>>> a = 'wang512'
>>> a.isalnum()
True
>>> a = 'wang'
>>> a.isalnum()
True
>>> a = '512'
>>> a.isalnum()
True
>>> a = 'wang 512'
>>> a.isalnum()
False

描述:

is阿尔法:检查评定字符串是还是不是只由字母组成。

isdigit:检查实验字符串是还是不是只由数字组成。

isalnum:检查评定字符串是不是由字母和数字组成。

isspace:检验字符串是或不是只由空格组成。

15、isalnum,检验字符串是还是不是只由字母组成

语法:

str.isalpha()

str.isdigit()

str.isalnum()

str.isspace()
>>> a = 'wang'
>>> a.isalpha()
True
>>> a = '512'
>>> a.isalpha()
False

例如:

67677新澳门手机版 1967677新澳门手机版 20

>>> 'abc'.isalpha()
True

>>> '123'.isdigit()
True

>>> 'abc123'.isalnum()
True

>>> '   '.isspace()
True

View Code

 

16、isdecimal ,检查字符串是或不是只含有十进制字符。这种办法只存在于unicode对象

>>> a = '12345'
>>> a.isdecimal()
True
>>> a = 'wang'
>>> a.isdecimal()
False

17、isdigit,检查测量试验字符串是还是不是只由数字组成

>>> a = '12345'
>>> a.isdigit()
True
>>> a = 'wang'
>>> a.isdigit()
False

18、isidentifier,检查实验字符串是不是以字母起首

>>> a.isidentifier()
False
>>> a = 'wang'
>>> a.isidentifier()
True

19、islower,检查实验字符串是还是不是由小写字母组成。

>>> a = "wang"
>>> a.islower()
True
>>> a = "Wang"
>>> a.islower()
False

本文由67677新澳门手机版发布于计算机编程,转载请注明出处:【67677新澳门手机版】常见的字符串操作,字符串

关键词: