【Python】python序列类型

python中,序列类型包括字符串(普通字符串和unicode字符串)、列表元组,所谓序列,即成员有序排列,并且可以通过下边偏移量访问到它的一个或者几个成员。假设序列有n个元素,访问单个元素时,下标从0开始,到n-1结束,如果是逆序访问,下标从-1开始,到-n结束,切片操作支持多个元素的访问。


序列类型支持如下操作符——

in/not in:成员关系操作符,返回True或False。

obj [not] in sequence:判断obj元素是否(不)属于sequence序列。

+:连接操作符,但是这个操作不是最快或者说最有效的,对字符串来说,这个操作不如把所有的字符串放到一个列表或可迭代对象中,然后调用一个join方法把所有的内容连接在一起以节约内存,类似地,对列表来说,用列表类型的extend()方法把两个或者多个列表对象合并。

sequence1 + sequence2:连接两个同类型序列。

*:重复操作符

sequence * copies_intsequence序列重复copies_int次。

[][:][::]:切片操作符

sequence[index]:访问单个元素。

sequence[starting_index:ending_index]:访问始末下标间的元素,支持None作为索引值,等同于不指定这个索引值。

sequence[starting_index:ending_index:step]:访问始末下标间的元素,指定元素间的步长,支持None作为索引值,等同于不指定这个索引值。


序列类型可用如下内建函数——

list(iter):把可迭代对象转换为列表。

str(obj):把obj对象转换为字符串,即用字符串来表示这个对象。

tuple(iter):把一个可迭代对象转换为一个元组。

unicode(obj):把对象转换成Unicode字符串。

basestring():抽象工厂函数,其作用仅仅是为strunicode函数提供父类,所以不能被实例化,也不能被调用。

enumerate(iter):接受一个可迭代对象作为参数,返回一个enumerate对象,该对象生成由iter每个元素的index值和item值组成的元组。

len(seq):返回seq的长度。

max(iter,key=None)max(arg0,arg1...,key=None):返回iter(arg0,arg1...)的最大值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数。

min(iter,key=None)min(arg0,arg1...,key=None):返回iter(arg0,arg1...)的最小值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数。

reversed(seq):接受一个序列作为参数,返回一个以逆序访问的迭代器。

sorted(iter,cmp=None,key=None,reverse=False):接受一个可迭代对象作为参数,返回一个有序的列表,可选参数cmpkeyreverselist.sort()内建函数含义一样。

sum(seq,init=0):返回seq和可选参数init的总和,其效果等同于reduce(operator.add,seq,init)

zip([it0,it1...]):返回一个列表,其第一个元素是it0it1...这些元素的第一个元素组成的一个元组,其它元素依次类推。


python字符串——

字符串类型是python里面最常见的类型,是不可变类型,支持单引号、双引号、三引号,三引号是一对连续的单引号或者双引号,允许一个字符串跨多行。

字符串连接:前面提到的+操作符可用于字符串连接,还可以直接把几个字符串连在一起写,另外调用join()方法也可以连接字符串。

只适用于字符串连接的操作符:前面提到了一些序列类型共用的操作符,除此之外,字符串还有只属于自己的操作符,包括格式控制操作符%、字符串模板string.Template、原始字符串操作符r/RUnicode字符串操作符u/U,unicode支持函数

__unicode__()。

格式化字符串支持如下符号

%c:转换成字符

%r:优先用repr()函数进行字符串转换

%s:优先用str()函数进行字符串转换

%d、%i:转换成有符号十进制数

%u:转换成无符号十进制数

%o:转换成无符号八进制数

%x、%X:转换成无符号十六进制数

%e、%E:转换成科学计数法

%f、%F:转换成浮点数

%g、%G:浮点数的科学计数法

%%:输出%

*:定义宽度或者小数点精度

-:用做左对齐

+:在正数前面显示加号

空格:在正数前面显示空格

#:在八进制数前面显示0,在十六进制前面显示0x或者0X

0:显示的数字前面填充0而不是默认的空格

m.n:m是显示的最小宽度,n是小数点后的位数

(var):映射变量(字典参数),如'%(a)s %(b)s' % {'a': 'hello', 'b': 'python'}

字符串内建函数包括:capitalize、center、count、decode、encode、endswith、expandtabs、find、index、isalnum、isalpha、indecimal、isdigit、islower、isnumeric、isspace、istitle、isupper、join、ljust、lower、lstrip、pattition、repalce、rfind、rindex、rjust、rpartion、rstrip、split、splitlines、starswith、strip、swapcase、title、translate、upper、zfill等。


下面列举一些与字符串类型有关的模块。

string:字符串操作相关函数和工具,比如Template类。出于性能考虑,尽量使用格式化字符串,而非string模块。

re:正则表达式,强大的字符串模式匹配模块。

struct:字符串和二进制之间的切换。

c/StringIO:字符串缓冲对象,操作方法类似于file对象。

base64Base16,32,64数据编解码。

codecs:解码器注册和基类。

crypt:进行单方面加密。

difflib:找出序列间的不同。

hashlib:多种不同安全哈系算法和信息摘要算法的APIpython2.5废除。

hmaHMAC信息鉴权算法的python实现。

md5RSAMD5信息摘要鉴权。

rotor:提供多平台的加解密服务。

shaNIAT的安全哈系算法SHA

stringprep:提供用于IP协议的Unicode字符串。

textwrap:文本打包和填充。

unicodedataUnicode数据库。

pickle: 只支持ASCII字符串,不兼容Unicode。

python列表——

python列表用方括号[]表示,有容器和可变的特性,这使得它非常灵活,用来构建其它的数据结构不是件难事,比如说堆栈或队列。可以使用dir(list)命令在python交互式解释器上查看列表内建函数,包括append、count、extend、index、insert、pop、remove、reverse、sort。


python元组——

python元组用圆括号()表示,是跟列表非常接近的另一种容器类型,不同的是,元组为不可变类型。所有多对象的、逗号分隔的、没有明确用符号定义的集合的默认类型为元组。对于单元素元祖来说,('xyz')被认为是字符串类型,括号被认为是分组操作符,单元素元祖的正确表示方法是('xyz',),在第一个元素后面添加一个逗号。


下面再列举一些与序列类型有关的模块。

数组:一种受限制的可变序列类型,要求所有的元素必须都是相同的类型。

copy:提供浅拷贝和深拷贝能力,深拷贝deepcopy()只对可变类型有效。

operator:包含函数调用形式的序列操作符。

types:包含python支持的所有类型。

collections:高性能容器数据类型。


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值