zoukankan      html  css  js  c++  java
  • Python中常用字符串处理

    • 字符串可以使用单引号或双引号来定义。在Python3 中,所有的字符串都是使用Unicode编码的字符序列。
    >>> s = '你好, Hello'
    >>> len(s)
    8
    >>> s[0]
    ''
    • Python3支持把值格式化(format)成字符串,可以有非常复杂的表达式,最基本的用法是使用单个占位符(placeholder)将一个值插入字符串。
    >>> username = 'mark'
    >>> password = 'PayayaWhip'
    >>> "{0}'s password is {1}".format(username, password)
    "mark's password is PayayaWhip"
    >>> si_suffixes = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
    >>> '1000{0[0]} = 1{0[1]}'.format(si_suffixes)
    '1000KB = 1MB'
    • split(sep, maxsplit):第一个参数为指定的分隔符sep ,根据这个分隔符将字符串分离成一个字符串列表。maxsplit指定拆分次数,默认不限制拆分次数。

        rsplit(sep, maxsplit):与split() 类似,只是它从最右边开始拆分。只有在指定maxsplit 的情况下才会看到效果。

    >>> str = 'H-E-L-L-O'
    >>> str.split('-')
    ['H', 'E', 'L', 'L', 'O']
    >>> str.split('-',1)
    ['H', 'E-L-L-O']
    >>> str.rsplit('L')
    ['H-E-', '-', '-O'] 

        在Python的shell里可以使用三个引号输入多行字符串。splitlines() 方法以多行字符串作为输入,返回一个由字符串组成的列表,列表的元素即原来的单行字符串,每行行末的回车符没有被包括进去。

    >>> str = '''Hello,
    World!'''
    >>> str
    'Hello,
    World!'
    >>> str.splitlines()
    ['Hello,', 'World!'] 
    • lower()、 upper() 方法分别把整个字符串转换成小写、大写。

        swapcase() :把字符串中的大小写互换,大写转换成小写,小写转换成大写。

        capitalize() :字符串首字母大写,其余小写。如果字符串首字符为非字母字符,将返回原字符串。字符串仅包含非字母字符合法,但返回原字符串。

        title() :字符串中每个单词的首字母大写,其余小写。

    • count(sub, start, end):对字符串中指定的子串进行计数。start和end指定统计范围。
    • endswith(suffix, start, end) :判断字符串是否以指定后缀结尾,返回 True 或False 。 start和 end 指定判断的起始范围,默认全字符串。

        startwith(prefix, start, end) :与 str.endwith()相反,判断字符串是否以指定前缀开始。

    • istitle():判断字符串每个单词的首字母是否大写。字符串必须至少包含一个字母字符,否则返回False 。

        isalnum() :判断字符串是否只包含由文字数字式字符,字符串仅包含中文字符合法。若字符串包含空格、下划线、 ~ 等非文字数字式字符,均返回False 。
        isalpha() :判断字符串是否只包含文字字符,字符串仅包含中文字符合法。
        isidentifier() :判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法。
        isprintable() :判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符,将返回 False 。
        isspace() :判断字符串是否仅包含空格或制表符。
        isdecimal() :判断字符串是否只包含十进制数字字符,包括多国语言的十进制数字字符表现形式。
        isdigit() :判断字符串是否只包含数字,这里的数字包括十进制数字和其它特殊数字(如上标数字等)。
        isnumeric() :判断字符串是否只包含数字字符。

    • find(sub, start, end) :查找子字符串在字符串中出现的第一个位置,start和end指定一个查找范围。未找到返回 -1 。

        rfind(sub, start, end) :跟find方法一样,返回指定子串的index位置,只不过rfind从字符串的最右边开始查找,找不到时返回 -1 。

    • partition(sep) :该方法用于拆分字符串,返回一个包含三个元素的元组。如果未能在原字符串中找到sep,则元组的三个元素为:原字符串,空串,空串;否则,从原字符串中遇到的第一个sep字符开始拆分,元组的三个元素为:sep之前的字符串,sep字符,sep之后的字符串;

            rpartition(sep) :与partition()相反,从原字符串的最右边开始拆分,但是同样返回包含三个元素的元组:倒数第一个sep之前的字符串,sep字符,sep之后的字符串。注意 “倒数sep之前的字符串”,这个之前的字符串,是从原字符串的最左边开始算,并不是最右边。

    • expandtabs(tabsize):把字符串中的所有制表符替换成零个或多个空格,每个制表符替换成多少个空格,由制表符在字符串中的位置和tabsize共同决定。tabsize指定每个制表符替换成的空格数,默认为8个。
    • zfill(width) :返回一个长度为 width的数字字符串,最左边填充0。如果width小于等于原字符串长度,则返回原字符串。主要用于数字类字符串的格式化。
    • replace(old, new, count]):返回一个新字符串,原串中的old被替换为new,count指定替换次数。
    • lstrip(chars) :chars参数是一个字符串,它包含了所有将要被移除的字符集合,默认为空格。从原字符串的最左边开始,匹配chars里包含的所有字符,直至遇到第一个非chars字符为止,原字符串中匹配到的所有字符都被移除。

        rstrip(chars) :与 lstrip()相反,从最右边开始匹配。
        strip(chars) :从字符串的两头开始匹配。

    >>> 'www.example.com'.lstrip('cmowz.')
    'example.com'
    >>> 'www.example.com'.rstrip('cmowz.')
    'www.example'
    >>> 'www.example.com'.strip('cmowz.')
    'example'
    • ljust(width, fillchar):返回一个长度为width,左对齐的字符串,最右边填充fillchar,默认为空格。width要大于len(str),否则返回原字符串。
      rjust(width, fillchar) :与 str.ljust()类似,但是它返回一个右对齐的字符串,最左边填充fillchar 。
      center(width, fillchar) :返回一个原字符串居中,长度为 width 的新字符串, width要大于 len(str) ,否则返回原字符串,原字符串开头和结尾处使用 fillchar 进行填充,默认为空格。

    • str.join(str2):连接str2(iterable对象)中的元素,返回一个被str连接起来的,由str2(iterable对象)的元素组成的字符串。如果传入一个非iterable对象,如整数、布尔值等,将返回TypeError。
      注:iterable object或iterator type最主要的特征是支持两个函数:__iter__()和__next__(),虽然不是很准确,但可以简单的认为支持使用for语句逐个取值的数据类型都是迭代器对象。sequence type(六种:strings、byte objects、byte arrays、lists、tuples、range objects)和dictionary都属于iterable对象。

    >>> str2=('A','B','C')
    >>> '-'.join(str2) 'A-B-C' 
    >>> str2=['D','E','F'] 
    >>> '-'.join(str2) 'D-E-F' 
    >>> '-'.join('Hello') 'H-e-l-l-o' 
    >>> '-'.join(123) 
    Traceback (most recent call last):
    File "<pyshell#83>", line 1, in <module>
    '-'.join(123)
    TypeError
  • 相关阅读:
    STL与泛型编程-练习2-GeekBand
    HashSet
    JAVA集合
    分布式锁1 Java常用技术方案
    JAVA 锁
    JAVA多线程二
    JAVA多线程一
    Redis pipeline and list
    mongo 安装
    Intersection of Two Arrays
  • 原文地址:https://www.cnblogs.com/thelongroad/p/3176465.html
Copyright © 2011-2022 走看看