4.7.1.字符串方法

字符串实现所有常见的序列操作,以及下面描述的其他方法。

字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性和定制(见str.format(), 格式化字符串的语法和自定义字符串格式化)和其他基于C printf风格的格式,处理范围较窄的类型,是稍硬使用正确,但对于它可以处理的情况(printf样式的字符串格式)通常更快。

标准库的文本处理服务部分涵盖了许多其他模块,这些模块提供各种与文本相关的实用程序(包括re模块中的正则表达式支持)。

str.capitalize()

返回字符串的副本,其首字符大写,其余字符小写。

str.casefold()

返回字符串的包含案例的副本。表壳折叠字符串可用于无壳匹配。

Casefolding类似于lowercasing但更具攻击性,因为它旨在删除字符串中的所有大小写区别。例如,德语小写字母'ß'相当于"ss"。因为它已经是小写的,所以lower()什么都不做'ß'casefold() 将其转换为"ss"

案例折叠算法在Unicode标准的3.13节中描述。

版本3.3中的新功能。

str.centerwidth [,fillchar ] )

以长度宽度的字符串为中心返回。使用指定的fillchar完成填充(默认为ASCII空间)。如果width小于或等于,则返回原始字符串len(s)

str.countsub [,start [,end ] ] )

返回[ startend ] 范围内substring sub的非重叠出现次数。可选参数startend被解释为切片表示法。

str.encodeencoding =“utf-8”errors =“strict” 

将字符串的编码版本作为字节对象返回。默认编码是'utf-8'。可以给出错误以设置不同的错误处理方案。错误的默认值是'strict',意味着编码错误会引发错误UnicodeError。其他可能的值'ignore''replace''xmlcharrefreplace''backslashreplace'和其他任何名义通过挂号 codecs.register_error(),见错误处理程序。有关可能的编码列表,请参阅标准编码部分。

在3.1版中更改:添加了对关键字参数的支持。

str.endswith后缀[,开始[,结束] ] )

返回True字符串是否与指定的结束后缀,否则返回 False。 后缀也可以是要查找的后缀元组。通过可选的 启动,从该位置开始测试。使用可选结束,停止在该位置进行比较。

str.expandtabstabsize = 8 

返回字符串的副本,其中所有制表符由一个或多个空格替换,具体取决于当前列和给定的制表符大小。每个制表符字符都会出现制表符位置(默认值为8,在第0,8,16列等位置给出制表符位置)。要展开字符串,请将当前列设置为零,并逐个字符地检查字符串。如果字符是制表符(\t),则在结果中插入一个或多个空格字符,直到当前列等于下一个制表符位置。(不会复制制表符本身。)如果字符是换行符(\n)或返回(\r),它被复制,当前列重置为零。任何其他字符都将保持不变,当前列将加1,无论打印时字符的表示方式如何。

>>>

>>> '01\t012\t0123\t01234'.expandtabs()
'01      012     0123    01234'
>>> '01\t012\t0123\t01234'.expandtabs(4)
'01  012 0123    01234'

str.findsub [,start [,end ] ] )

返回在切片中找到substring sub的字符串中的最低索引s[start:end]。可选参数startend被解释为切片表示法。-1如果未找到sub,则返回。

注意

find()只有在需要知道sub的位置时才应使用该方法。要检查sub是否是子字符串,请使用 in运算符:

>>>

>>> 'Py' in 'Python'
True

str.format* args** kwargs 

执行字符串格式化操作。调用此方法的字符串可以包含由大括号分隔的文字文本或替换字段 {}。每个替换字段都包含位置参数的数字索引或关键字参数的名称。返回字符串的副本,其中每个替换字段都替换为相应参数的字符串值。

>>>

>>> "The sum of 1 + 2 is {0}".format(1+2)
'The sum of 1 + 2 is 3'

有关可以在格式字符串中指定的各种格式选项的说明,请参阅格式字符串语法。

注意

当格式化数(intfloatfloat 与和亚类)n类型(例如:'{:n}'.format(1234)),功能暂时设定LC_CTYPE的区域设置到LC_NUMERIC 区域解码decimal_pointthousands_sep领域 localeconv()如果它们是非ASCII或长于1个字节,而 LC_NUMERIC区域设置为比不同在LC_CTYPE语言环境。此临时更改会影响其他线程。

在版本3.7中更改:在使用n类型格式化数字时,该函数会在某些情况下临时将LC_CTYPE语言环境设置为LC_NUMERIC语言环境。

str.format_map映射

类似于str.format(**mapping),除了mapping直接使用而不是复制到dict。如果例如mapping是一个dict子类,这很有用:

>>>

>>> class Default(dict):
...     def __missing__(self, key):
...         return key
...
>>> '{name} was born in {country}'.format_map(Default(name='Guido'))
'Guido was born in country'

版本3.2中的新功能。

str.indexsub [,start [,end ] ] )

喜欢find(),但是ValueError在找不到子串时会引发。

str.isalnum()

如果字符串中的所有字符都是字母数字且至少有一个字符,则返回true,否则返回false。字符c是字母数字,如果下面的返回之一Truec.isalpha()c.isdecimal()c.isdigit(),或c.isnumeric()

str.isalpha()

如果字符串中的所有字符都是字母并且至少有一个字符,则返回true,否则返回false。字母字符是在Unicode字符数据库中定义为“字母”的那些字符,即具有一般类别属性的那些字符是“Lm”,“Lt”,“Lu”,“L1”或“Lo”之一。请注意,这与Unicode标准中定义的“字母”属性不同。

str.isascii()

如果字符串为空或字符串中的所有字符都是ASCII,则返回true,否则返回false。ASCII字符的代码点范围为U + 0000-U + 007F。

版本3.7中的新功能。

str.isdecimal()

如果字符串中的所有字符都是十进制字符并且至少有一个字符,则返回true,否则返回false。十进制字符是可用于在基数10中形成数字的字符,例如U + 0660,ARABIC-INDIC DIGIT ZERO。正则小数字符是Unicode常规类别“Nd”中的字符。

str.isdigit()

如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false。数字包括十进制字符和需要特殊处理的数字,例如兼容性上标数字。这包括不能用于在基数10中形成数字的数字,如Kharosthi数字。形式上,数字是具有属性值Numeric_Type = Digit或Numeric_Type = Decimal的字符。

str.isidentifier()

如果字符串是根据语言定义,标识符和关键字部分的有效标识符,则返回true 。

使用keyword.iskeyword()测试保留的标识符,例如 defclass

str.islower()

如果字符串中的所有外壳字符[4]都是小写且至少有一个外壳字符,则返回true,否则返回false。

str.isnumeric()

如果字符串中的所有字符都是数字字符,则返回true,并且至少有一个字符,否则返回false。数字字符包括数字字符,以及具有Unicode数值属性的所有字符,例如U + 2155,VULGAR FRACTION ONE FIFTH。形式上,数字字符是具有属性值Numeric_Type = Digit,Numeric_Type = Decimal或Numeric_Type = Numeric的字符。

str.isprintable()

如果字符串中的所有字符都是可打印的或字符串为空,则返回true,否则返回false。不可打印的字符是Unicode字符数据库中定义为“其他”或“分隔符”的字符,但ASCII空间(0x20)除外,它被认为是可打印的。(请注意,此上下文中的可打印字符repr()是在字符串上调用时不应转义 的字符。它与写入sys.stdout或的字符串的处理无关sys.stderr。)

str.isspace()

如果字符串中只有空格字符并且至少有一个字符,则返回true,否则返回false。空白字符是Unicode字符数据库中定义为“其他”或“分隔符”的字符,以及具有双向属性的字符是“WS”,“B”或“S”之一。

str.istitle()

如果字符串是一个带有标题的字符串并且至少有一个字符,则返回true,例如,大写字符可能只跟随无字符的字符,而小写字符只能跟随字符。否则返回false。

str.isupper()

如果字符串中的所有外壳字符[4]都是大写且至少有一个外壳字符,则返回true,否则返回false。

str.join可迭代的

返回一个字符串,它是iterable中字符串的串联。TypeError如果在iterable中有任何非字符串值,包括bytes对象,则会引发 A. 元素之间的分隔符是提供此方法的字符串。

str.ljustwidth [,fillchar ] )

返回长度的字符串左对齐字符串宽度。使用指定的fillchar完成填充(默认为ASCII空间)。如果width小于或等于,则返回原始字符串len(s)

str.lower()

返回字符串的副本,并将所有套接字符[4]转换为小写。

所使用的小写算法在Unicode标准的3.13节中描述。

str.lstrip([ chars ] )

返回删除了前导字符的字符串副本。的字符 参数是要除去的字符串指定的字符集。如果省略或None,则chars参数默认为删除空格。该字符 参数不是前缀; 相反,它的所有值组合都被剥离:

>>>

>>> '   spacious   '.lstrip()
'spacious   '
>>> 'www.example.com'.lstrip('cmowz.')
'example.com'

static str.maketrans[,[,] ] )

此静态方法返回可用的转换表str.translate()

如果只有一个参数,则它必须是将Unicode序数(整数)或字符(长度为1的字符串)映射到Unicode序数,字符串(任意长度)或字典的字典None。然后将字符键转换为序数。

如果有两个参数,则它们必须是长度相等的字符串,并且在结果字典中,x中的每个字符将映射到y中相同位置的字符。如果有第三个参数,则它必须是一个字符串,其字符将映射到None结果中。

str.partitionsep 

在第一次出现sep时拆分字符串,并返回包含分隔符之前的部分的3元组,分隔符本身以及分隔符之后的部分。如果找不到分隔符,则返回包含字符串本身的3元组,后跟两个空字符串。

str.replace旧的新的[,计数] )

返回字符串的副本,其中所有出现的substring old都替换为 new。如果给出可选参数计数,则仅 替换第一次计数

str.rfindsub [,start [,end ] ] )

返回找到substring sub的字符串中的最高索引,以便包含subs[start:end]。可选参数start 和end被解释为切片表示法。-1失败时返回。

str.rindexsub [,start [,end ] ] )

喜欢rfind()ValueError在找不到子串子时加注。

str.rjustwidth [,fillchar ] )

以长度宽度的字符串返回右对齐的字符串。使用指定的fillchar完成填充(默认为ASCII空间)。如果width小于或等于,则返回原始字符串len(s)

str.rpartitionsep 

在最后一次出现sep时拆分字符串,并返回包含分隔符之前的部分的3元组,分隔符本身以及分隔符之后的部分。如果找不到分隔符,则返回包含两个空字符串的3元组,后跟字符串本身。

str.rsplitsep = Nonemaxsplit = -1 

使用sep作为分隔符字符串,返回字符串中单词的列表。如果给出maxsplit,则最多完成maxsplit分割,最右边 的分割。如果未指定sepNone,则任何空白字符串都是分隔符。除了从右边分裂之外,rsplit()其行为类似于 split()下面详细描述的。

str.rstrip([ chars ] )

返回删除了尾随字符的字符串副本。的字符 参数是要除去的字符串指定的字符集。如果省略或None,则chars参数默认为删除空格。该字符 参数不是后缀; 相反,它的所有值组合都被剥离:

>>>

>>> '   spacious   '.rstrip()
'   spacious'
>>> 'mississippi'.rstrip('ipz')
'mississ'

str.splitsep = Nonemaxsplit = -1 

使用sep作为分隔符字符串,返回字符串中单词的列表。如果给出maxsplit,则最多完成maxsplit拆分(因此,列表将具有最多maxsplit+1元素)。如果未指定maxsplit-1,则对分割数量没有限制(进行所有可能的分割)。

如果给出了sep,则连续的分隔符不会组合在一起,并被视为分隔空字符串(例如,'1,,2'.split(',')返回 )。该的参数可以由多个字符(例如,返回)。返回使用指定分隔符拆分空字符串。['1', '', '2']'1<>2<>3'.split('<>')['1', '2', '3']['']

例如:

>>>

>>> '1,2,3'.split(',')
['1', '2', '3']
>>> '1,2,3'.split(',', maxsplit=1)
['1', '2,3']
>>> '1,2,,3,'.split(',')
['1', '2', '', '3', '']

如果未指定sep或者是None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串。因此,将空字符串或仅包含空格的字符串与None分隔符分开将返回[]

例如:

>>>

>>> '1 2 3'.split()
['1', '2', '3']
>>> '1 2 3'.split(maxsplit=1)
['1', '2 3']
>>> '   1   2   3   '.split()
['1', '2', '3']

str.splitlines([ keepends ] )

返回字符串中的行列表,在行边界处断开。除非给出keepends且为true,否则换行符不包括在结果列表中。

此方法拆分以下行边界。特别是,边界是普遍换行的超集。

表示 描述
\n 换行
\r 回程
\r\n 回车+换行
\v 要么 \x0b 行列表
\f 要么 \x0c 换页
\x1c 文件分隔符
\x1d 组分隔符
\x1e 记录分隔符
\x85 下一行(C1控制代码)
\u2028 线分隔符
\u2029 段落分隔符

在版本3.2中更改:\v\f添加到行边界列表中。

例如:

>>>

>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']

与给定split()分隔符字符串sep时不同,此方法返回空字符串的空列表,并且终止换行符不会产生额外的行:

>>>

>>> "".splitlines()
[]
>>> "One line\n".splitlines()
['One line']

为了比较,split('\n')给出:

>>>

>>> ''.split('\n')
['']
>>> 'Two lines\n'.split('\n')
['Two lines', '']

str.startswith前缀[,start [,end ] ] )

返回True字符串是否与开始前缀,否则返回False。 前缀也可以是要查找的前缀元组。使用可选的启动,测试字符串从该位置开始。使用可选结束,停止比较该位置的字符串。

str.strip([ chars ] )

返回删除了前导和尾随字符的字符串副本。的字符参数是要除去的字符串指定的字符集。如果省略或None,则chars参数默认为删除空格。该字符参数不是前缀或后缀; 相反,它的所有值组合都被剥离:

>>>

>>> '   spacious   '.strip()
'spacious'
>>> 'www.example.com'.strip('cmowz.')
'example'

最外层的前导和尾随字符参数值将从字符串中删除。从前端删除字符,直到到达字符集中未包含的字符串字符。在尾端发生类似的动作。例如:

>>>

>>> comment_string = '#....... Section 3.2.1 Issue #32 .......'
>>> comment_string.strip('.#! ')
'Section 3.2.1 Issue #32'

str.swapcase()

返回字符串的副本,其中大写字符转换为小写,反之亦然。请注意,它不一定是真的 。s.swapcase().swapcase() == s

str.title()

返回字符串的标题版本,其中单词以大写字符开头,其余字符为小写。

例如:

>>>

>>> 'Hello world'.title()
'Hello World'

该算法使用简单的与语言无关的单词定义作为连续字母组。该定义在许多情况下起作用,但它意味着收缩和所有格中的撇号形成单词边界,这可能不是所期望的结果:

>>>

>>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"

可以使用正则表达式构建撇号的变通方法:

>>>

>>> import re
>>> def titlecase(s):
...     return re.sub(r"[A-Za-z]+('[A-Za-z]+)?",
...                   lambda mo: mo.group(0)[0].upper() +
...                              mo.group(0)[1:].lower(),
...                   s)
...
>>> titlecase("they're bill's friends.")
"They're Bill's Friends."

str.translate

返回字符串的副本,其中每个字符已通过给定的转换表进行映射。该表必须是通过__getitem__()(通常是映射或 序列)实现索引的对象。当由Unicode序数(整数)索引时,表对象可以执行以下任何操作:返回Unicode序号或字符串,以将字符映射到一个或多个其他字符; return None,从返回字符串中删除字符; 或者引发 LookupError异常,将角色映射到自身。

您可以使用str.maketrans()不同格式的字符到字符映射创建转换映射。

另请参阅该codecs模块,以获得更灵活的自定义字符映射方法。

str.upper()

返回字符串的副本,并将所有套接字符[4]转换为大写。请注意,s.upper().isupper()可能是False如果s 包含无套管的字符或如果所得到的字符(县)的Unicode类别不是“吕氏春秋”(字母,大写),但如“LT”(字母,首字母大写)。

使用的大写算法在Unicode标准的3.13节中描述。

str.zfill宽度

返回用ASCII '0'数字填充的字符串的副本,以生成长度为宽度的字符串。一个前置符号前缀('+''-')是通过将填充处理的符号字符,而不是之前。如果width小于或等于,则返回原始字符串len(s)

例如:

>>>

>>> "42".zfill(5)
'00042'
>>> "-42".zfill(5)
'-0042'

python 字符串方法大全相关推荐

  1. [转载] python 字符串方法大全

    参考链接: Python字符串| rpartition 4.7.1.字符串方法 字符串实现所有常见的序列操作,以及下面描述的其他方法. 字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性 ...

  2. python字符串方法大全

    注意,python中 字符串是不可变对象 ,所以所有修改和生成字符串的操作的实现方法都是另一个内存片段中新生成一个字符串对象.例如, 'abc'.upper() 将会在划分另一个内存片段,并将返回的  ...

  3. [转载] python字符串方法有哪些_27种Python字符串操作方法大全

    参考链接: Python字符串方法3| strip,lstrip,rstrip,min,max,maketrans,translate,replace和expandtabs 1.去空格及特殊符号 代码 ...

  4. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几 ...

  5. js检测字符串方法大全

    js检测字符串方法大全 <script> /* function obj$(id)                      根据id得到对象 function val$(id)      ...

  6. 常见的几种python字符串方法总结

    常见的几种python字符串方法总结 python的字符串模块很强大,有很多内置的方法,我们介绍下常用的字符串方法: 一. find和rfind方法查找字串所在位置 s = 'abcdef' prin ...

  7. 仅需10道题轻松掌握Python字符串方法 | Python技能树征题

    仅需10道题轻松掌握Python字符串方法 | Python技能树征题 0. 前言 1. 第 1 题:字符串检查 2. 第 2 题:字符串大小写转换 3. 第 3 题:字符串开头或结尾匹配 4. 第 ...

  8. python字符串方法的简单使用

    学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: 1 > ...

  9. 31个好用的 Python 字符串方法,建议收藏!

    作者 | 小F 来源 | 法纳斯特 字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它. 今天,就带大家学习一下31个最重要的内置字符串方法. 希望大家能从中找到对自己有帮 ...

最新文章

  1. Python练习2-基本聊天程序-虚拟茶会话
  2. Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议(单向认证简易版)
  3. java 响应 请求参数_spring基础----请求与响应的参数(一)
  4. 巧用1个GPIO控制2个LED显示4种状态
  5. 小鹏P7将上线新一代AI语音:无限接近人类、带情感、会调侃
  6. openstack 官方文档配置 Open vSwitch
  7. php 7 中对数值 * 100 出现很多小数_PHP快速入门第二讲:数据类型
  8. mongodb的分布式集群(4、分片和副本集的结合)
  9. python制图一元迭代函数_Python中 生成器、迭代器、闭包、装饰器、元类实例分析...
  10. 转:谦逊不是罕见的美德,而是人人可习得的能力
  11. 中国历史上十大无名英雄
  12. C++读写操作ofstream(数据丢失问题)
  13. 关于javascript中避免使用eval的理解
  14. 'Periodic workspace save .' has encountered a problem
  15. Elasticsearch生命周期ILM若干时间后自动删除索引index
  16. js数组对象按照中文拼音排序
  17. oracle- 同义词
  18. Java学习星球,Java学习路线
  19. iOS安全–看了这个,你还敢用分身版微信吗?
  20. html表格框线怎么弄实心的,HTML5绘制实心的文本

热门文章

  1. Linux查看内存大小
  2. inspect python_python3 inspect使用
  3. 阿里、腾讯、美团以及网易等一线互联网公司面试总结
  4. 业界 | 如果技术从业者上岗前也要宣誓,一份给程序员的希波克拉底誓言
  5. Mybatis resultMap discriminator(鉴定器) 实操
  6. 运算放大器工作原理(杨老师模拟电子学习)
  7. 吃货联盟订餐系统(订餐功能实现)
  8. 【数据结构(C++)】用链队列计算杨辉三角
  9. C++不知算法系列之集结常规算法思想
  10. D16-04 匿名函数