python详解(3)--常用的数据结构(字符串)

本文详细介绍了Python中的字符串操作,包括基本操作、正则表达式和格式化。字符串是不可变对象,有多种表示方法,如单引号、双引号、三引号。文章讲解了字符串的长度、编码、切片、分割、合并、检索与转换等,并涉及正则表达式的使用,如模式字符串和re模块的相关函数。此外,还讨论了字符串的格式化,包括%记法和format方法。最后,提到了一些Python中与赋值、输出、变量相关的细节,如类型检查、内存地址、Unicode编码和print函数的使用等。
摘要由CSDN通过智能技术生成

python中的字符串是一个不可变对象,其是字符的线性排列,采用一体式顺序表(参后续数据结构与算法)的形式来实现,在底层应该看成一个序列/一种组合对象而不是单个对象,其很多操作都不是常量时间的,是线性时间操作。

一、字符串的基本操作

字符串是python中最常见的对象(是的,字符串也是对象,python中的任何东西都是对象),是不可变对象(重复),即在python中,字符串一旦创建就不可再更改,新字符串的产生是需要重新开辟内存生成对象的。

字符串的表示方法:python中使用单引号或双引号或三引号来表示字符串,其中:①不区分单引号与双引号,即’abc’与"abc"是等价的;
②在某些特定格式的字符串(如json)中,必须使用双引号表字符串,其与模块要求的格式有关;
③要注意,如果想在字符串中再添加引号,则必须区分,如'a+"b"+c'"a+'b'+c"两者等价,但其使用的引号必须有区别;
④三引号可以将输入的换行、缩进等特殊字符自动转换,再次输出时保持输入的格式,例如:''' a'''存储为'\ta'(’\t’为制表符,即缩进),再次输出时会自动转换,尤其适用于转换HTML文档、SQL语句时;
⑤在字符串前添加r,表示原生字符串,即不将字符串中的特殊符号进行转义,如r'\t',其输出为'\\t',其中\为转义字符。
:字符串的内容其实是固定的,如'\t'其也只是在直接print时才会输出为缩进,因此对于应用而言,三引号字符串保留原本格式,用于函数/类注释、文档字符串等;原生字符串用于字符串的正则匹配,因为其中多处应用到了\,如若不加区分可能会被解释器错误理解;其它场景使用普通字符串即可。

字符串的长度len(str)可以返回字符串的字符长度,默认情况下不区分中英文字符统一按一个字符处理;
str.encode('utf-8')将字符串编码为bytes,此时len()统计其字节数,GBK中中文占两个字节,UTF-8中中文占3个字节。

字符串的切片、分割与合并
①切片操作与列表类似,使用中括号记法(str[a:b:c]切片,a[index]下标访问);
②分割:str.split(a,b),其中a用于指定分隔符(默认为None,即所有空字符,换行符制表符空格等),b用于指定分割的次数(即检索b个空字符,生成b+1个字符串),返回一个由分割后的字符串组成的列表(若不指定分隔符,则多个在一起的空白符会算作一个分隔符,若指定分隔符,则会产生空元素,例如对s = ' a b c'进行分割,s.split()返回['a', 'b', 'c'],而s.split(' ')返回['', 'a', '', 'b', '', '', 'c']);
str.rsplit()与split类似,但从右向左进行检索;
str.splitlines()用换行符分割;
str.partition(a)在str中检索字符串a,返回一个元组,由a前的子串,a,a后的子串组成,若检索到多个a,则以第一个为准,若检索不到a,则返回(str, '', '')
str.rpartition(a)与partition类似,从右向左检索;
str.join(a)其中a是可迭代对象,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值