美文网首页Python
Python—字符串(二)

Python—字符串(二)

作者: 八戒无戒 | 来源:发表于2019-08-17 22:57 被阅读0次

上篇讲了python字符串的一些常用方法,现在再来看看字符串的一些不常用的方法吧(个人觉得比较鸡肋的方法)。

  • center(width,fillchar):字符串长度变为width的值,并以center为中心,两端以fillchar填充(右端优先),若fillchar小于字符串自身长度,则返回原字符串

  • ljust(width,fillchar):字符串长度变为width的值,并左对齐,右边空缺位置以fillchar填充,若fillchar小于字符串自身r长度,则返回原字符串

  • rjust(width,fillchar):字符串长度变为width的值,并右对齐,左边空缺位置以fillchar填充,若fillchar小于字符串自身长度,则返回原字符串

>>> a="hello world"
>>> a.center(20, '*')
'****hello world*****'
>>> a.center(14, "*")
'*hello world**'
>>> a.rjust(20, '*')
'*********hello world'
>>> a.ljust(20, '*')
'hello world*********'
>>> 
  • expandtabs(tabsize) :将原字符串中所有'\t'制表符转换成一个或多个空格并返回一个新的字符串,空格的值取决于当前列位置和给定的制表符宽度(tabsize参数值,默认为8)。每 tabsize 个字符设为一个制表位(默认值 8 时设定的制表位在字符串 0, 8, 16 ...依次类推),根据制表位将原字符串分为分为列。如下
>>> a='hello\tworld\nbe\tauti\rful'
>>> a[0:8]
'hello\two'              # 第一列
>>> a[8:16]
'rld\nbe\ta'             # 第二列
>>> a[16:]
'uti\rful'                # 第三列
>>> a.expandtabs()
'hello   world\nbe      auti\rful'
>>> '01\t012\t01\n\t23\t01234'.expandtabs(4)
'01  012 01\n    23  01234'

然后逐一检查每列中的每个字符,如果字符为'\t',则去除原来的'\t',插入空格,直到该列结束。如果字符为换行符 (\n) 或回车符 (\r),它将会被复制。此列直接结束,继续检查下一列。
结果第一列:索引5时候出现'\t'制表符,则返回的第一列为'hello' + ' '*3,共八个字符。
结果第二列:'world\n'(遇到'\n'该列直接结束)
结果第三列:'be'后面为'\t',则返回的第三列为'be'+' '*6,共八个字符
结果第四列:'auti\r'(遇到'\r'该列直接结束)
结果第五列:'ful'
将以上全部拼在一起即返回的结果,result='hello' + ' '*3+'world\n'+'be'+' '*6+'auti\r'+'ful',该方法真的是有点鸡肋,不过下面还有更鸡肋的。

  • maketrans(x[, y[, z]]): 此静态方法返回一个可供 [str.translate()]使用的转换对照表,即一个字典
    如果只有一个参数,则它必须是一个将 Unicode 码位序号(整数)或字符(长度为 1 的字符串)映射到 Unicode 码位序号、(任意长度的)字符串或 None 的字典。 字符键将会被转换为码位序号。
    如果有两个参数,则它们必须是两个长度相等的字符串,并且在结果字典中,x 中每个字符将被映射到 y 中相同位置的字符。 如果有第三个参数,它必须是一个字符串,其中的字符将在结果中被映射到 None。
  • translate(table): 返回原字符串的副本,其中每个字符按给定的转换表进行映射。参数通常为一字典。当映射值为None,将字符从结果字符串中删除
# 只有一个参数时:
>>> a="hello world"
>>> b=a.maketrans({"h":"a","e":"b","l":"c","o":"d","w":"e"})
>>> b
{104: 97, 119: 101, 108: 99, 101: 98, 111: 100}
>>> {chr(k):chr(v) for k,v in b.items()}
{'e': 'b', 'o': 'd', 'l': 'c', 'h': 'a', 'w': 'e'}

# 有两个参数时:
>>> a="hello world"
>>> b=a.maketrans('helow','abcde')
>>> b
{104: 97, 119: 101, 108: 99, 101: 98, 111: 100}
>>> {chr(k):chr(v) for k,v in b.items()}
{'e': 'b', 'o': 'd', 'l': 'c', 'h': 'a', 'w': 'e'}

# 有三个参数时:
>>> a="hello world"
>>> b=a.maketrans('helow','abcde','@#')
>>> b
{64: None, 35: None, 101: 98, 119: 101, 104: 97, 108: 99, 111: 100}
>>> {chr(k):chr(v) for k,v in b.items() if v}
{'e': 'b', 'o': 'd', 'l': 'c', 'h': 'a', 'w': 'e'}
>>> '@hello world#'.translate(b)
'abccd edrcd'
# "@"和"#"被映射成None,从结果字符串中删除,h映射为a,e映射为b,l映射为c,o映射为d,w映射为e,
# r和d由于映射表中未映射,p还是本身值
  • partition(sep): 返p回一个三个元素的元祖,第一个元素为seq字符前面的字符串,第二个元素为seq本身,第三个元素为seq后面的字符串,从最左边的第一个seq切割,seq不在字符串中时返回一个包含字符串本身和两个空字符串的元祖

  • partition(sep): 返回一个三个元素的元祖,第一个元素为seq字符前面的字符串,第二个元素为seq本身,第三个元素为seq后面的字符串,从最右边的第一个seq切割,seq不在字符串中时返回一个包含字符串本身和两个空字符串的元祖

>>> a="hello world"
>>> a.partition('o')
('hell', 'o', ' world')
>>> a.rpartition('o')
('hello w', 'o', 'rld')
>>> a.partition('z')
('hello world', '', '')
  • splitlines([keepends]): 返回一个列表,列表元素为被'\n','\t'分割的子字符。keepends默认为False(即返回的列表元素不包含\n,\t),为True时将保留原来的\n或\t。
>>> a="hel\nlo worl\t\rd"
>>> a.splitlines()
['hel', 'lo worl\t', 'd']
>>> a.splitlines(True)
['hel\n', 'lo worl\t\r', 'd']
  • swapcase(): 原字符串中小写字母变大写,大写字母变小写,特殊符号和数字不变,返回一个新字符串。
>>> a="hello WORLD @1"
>>> a.swapcase()
'HELLO world @1'
  • zfill(width): 原字符串长度变为width,并右对齐,不足位补'0',返回一个新字符串。若width小于原字符串长度,则返回原字符串
>>> a="hello world"
>>> a.zfill(20)
'000000000hello world'

终终终于完了。。。。。。

相关文章

  • Python notes(2/3)

    目录 一,python 字符串 二,Python列表(List) 三,Python 元组 四,Python字典 五...

  • Python(一)字符串操作

    Python字符串的操作 一: python字符串的格式 双引号或者单引号中的数据都是字符串 二: 字符串的输出 ...

  • python基础知识(3)

    python字符串 python转义字符 python字符串运算符 python字符串格式化 python格式化操...

  • 2018-07-23 Chapter 2.1 Ablout St

    《Python编程从入门到实践》第二章 字符串print("Hello Python world!") msg1 ...

  • python count()方法详解

    Python count()方法 Python 字符串 描述 Python count() 方法用于统计字符串里某...

  • python字符串格式化符号与内建函数资料表

    python字符串格式化符号: Python 的字符串内建函数 Python 的字符串常用内建函数如下:

  • 2018-10-11

    C基础入门Python(二) 2、字符串 字符串是单个单词的序列 1)创建字符串 字符串具有不可变性。但支持索引和...

  • 字符串操作方法

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

  • python字符串相关函数

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

  • 2018-09-28自学习资料

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

网友评论

    本文标题:Python—字符串(二)

    本文链接:https://www.haomeiwen.com/subject/pdqksctx.html