Python内置数据结构——字符串string-创新互联

字符串

创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十年时间我们累计服务了上千家以及全国政企客户,如成都玻璃钢坐凳等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞美。

字符串定义

  • 一个个字符组成的有序的序列,是字符的集合

  • 使用单引号、双引号、三引号引住的字符序列

  • 字符串是不可变对象

  • Python3起,字符串就是Unicode类型

字符串元素访问——下标

        字符串支持使用索引访问

   sql = “select * from user where name”
   sql[4] #字符串‘c’

        有序的字符集合,字符序列

      for c in sql:

        可迭代

      lst = list(sql)

字符串join连接

“string”.join(iterable)  ->  str

        将可迭代对象连接起来,使用string作为分隔符

        可迭代对象本身元素都是字符串

        返回一个新字符串

    lst = ['1','2','3']
    print("\" ".join(lst)) # 分隔符是双引号

+  -> str

        将2个字符串连接在一起返回新的字符串

字符串分割

分割字符串的方法分为2类:

    1.split系 -> list

            将字符串按照分隔符分割成若干个字符串,并返回列表(list)

    2.partition系 -> tuple

            将字符串按照分隔符分割成2段,返回这2段和分隔符的元组(tuple)

split (sep = None,maxsplit = -1) -> list of string

rsplit(sep = None,maxsplit = -1) - > list of string

            split从左至右,rsplit从右至左

            sep指定分割字符串,缺省的情况下空白字符串(包括空格 \r \n \r\n \t)作为分隔符

            maxsplit 指定分割的次数, -1表示遍历整个字符串

splitlines([keepends])-> list of string

            按照 行 来切分字符串

            keepend 指的是 是否保留分行符(默认False不保留;True 保留)

            行分隔符包括 \n  \r\n \r等

partition(sep) -> (head,sep,tail) -> tuple of string

            partition从左至右(rpartition 从右至左),遇到分隔符就把字符串分割成2部分,返回头、分隔符、尾三部分的三元组。如果没有找到分隔符,就返回头, 2个空元素的三元组

            sep分割字符串,必须指定,而且不能为空“”

字符串大小写

upper()

    全大写

lower()

    全小写

大小写,做判断的时候用

swapcase()

    交互大小写

字符串排版

title() -> str

        标题的每个单词的首字母都大写

capitalize() -> str

        首个单词首字母大写

center(width[,fillchar]) -> str

        width 打印宽度

        fullchar 填充的字符

zfill(width) -> str

        width 打印宽度,居右,左边用0填充

ljust(width[,fillchar]) -> str 左对齐

rjust(width[,fillchar]) -> str 右对齐

字符串修改

repalce(old,new[,count]) -> str

        从左到右在字符串中找到子串替换为心子串,返回新字符串

        count表示替换几次,不指定就是全部替换

strip([chars]) -> str

        从字符串两端去除指定的字符集chars中的所有字符

        如果chars没有指定,去除两端的空白字符

lstrip([chars]) -> str:从左开始

rstrip([chars]) -> str: 从右开始

字符串查找

find(sub[,start[,stop]]) -> int

        在指定的区间[start,end),从左至右,查找子串sub.找到返回索引,没找到返回 -1

rfind(sub[,start[,stop]]) -> int

        在指定的区间[start,end),从右至左,查找子串sub.找到返回索引,没找到返回 -1

PS: strat索引位置必须在stop索引位置的左边,否则返回 -1

EXP: s = "I am very very very sorry"
s.find('very')
s.find('very',5)
s.fing('very',6,13)
s.fing('very',-10,-1)

index(sub,[,start[,stop]]) -> int

        在指定的区间[start,end),从左至右,查找子串sub.找到返回索引,没找到抛出异常value error

rindex(sub,[,start[,stop]]) -> int

        在指定的区间[start,end),从右至左,查找子串sub.找到返回索引,没找到抛出异常value error

时间复杂度

        index和count方法都是O(n)

        随着列表数据规模的增大,而效率下降

len(string)

        返回字符串的长度,及字符的个数

count(sub[,start[,end]]) -> int

        在指定区间[start,end),从左至右,统计子串sub出现的次数

字符串判断*

endswith(suffix[,start[,end]]) -> bool

        在指定的区间[start,end),字符串是否是suffix结尾

startswith(prefix[,start[,end]]) -> bool

        在指定的区间[start,end),字符串是否是prefix开头

字符串判断 is系列

    isalnum() -> bool 是否是字母和数字组成

    isalpha() 是否是字母

    isdecimal() 是否只包含是十进制数字

    isdigit() 是否全部数字(0~9)

    isidentifier() 是不是字母和下划线开头,其它都是字母\数字\下划线

    islower() 是否都是小写

    isupper() 是否都是大写

    isspace() 是否只包含空白字符

字符串格式化

字符串的格式化是一种凭借字符串输出样式的首手段,更灵活方便

        .join(iterable) 拼接中能使用分隔符,且要求被拼接的是可迭代对象,(元素必须为字符换)

        + 拼接字符串直接拼接,但是非字符串需要先转换成字符串才能拼接

1.在2.5版本之前,只能使用printf style 风格的print输出

        printf-style formatting,来自于c语言的printf函数

    格式要求:

        占位符:使用%和格式字符组成,例如%s %d等

        s调用str(),r会调用repr().所有对象都可以被这2个转换

        占位符中还可以插入修饰符字符,例如%03d表示打印3个位置,不够前面补0

        format % values,格式字符串和被格式的值之间使用%分隔

        value至少能是一个对象,或是一个和格式字符串占位符数目相等的元组,或一个字典

2.format函数格式字符语法----python鼓励使用

        "{}{xxx}".format(*args , **kwargs) -> str

        args是位置参数,是一个元组

        kwargs是关键字参数,是一个字典

        花括号表示占位符

        {}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值

        {xxx}表示在关键字参数中搜索名称一致的

        {{}} 表示打印花括号

    位置参数

        "{}{}",format('a','b'),这就是按照位置顺序用位置参数替换前面的格式字符串的占位符中

    关键字参数或命名参数

        "{server}{1}{0}".format("b","a",server="c"),位置参数按照序号匹配,关键字参数按照名字匹配

    访问元素

"{0[0]}..{0[1]}".format(("magedu","com"))

对象属性访问

from collections import namedtuple
point = namedtuple("point","x, y")
p = point(4,5)
"{{{0.x},{0.y}}}".format(p)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Python内置数据结构——字符串string-创新互联
链接URL:http://pwwzsj.com/article/dgejoe.html