序列 (python)

本文深入探讨了Python中序列类型的定义与应用,包括字符串、列表和元组,详细介绍了序列的操作符、内建函数以及如何高效地进行序列的连接、比较、切片等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列

Python中的序列类型,其成员有序排列,可以通过下标偏移量访问到它的一个或多个成员。因为这些类型其实都是由一些成员共同组成的一个序列整体,所以统称为序列。 
序列类型包含:字符串(普通字符串和unicode字符串)、列表和元组。

1 操作符

1.1 标准操作符

对象值比较:比较操作是针对对象的值进行的。

<   >   <=   >=   ==   !=   <>

对象身份比较:

obj1 is obj2       obj1 和obj2是同一个对象,等同于 id(obj1)==id(obj2)
obj1 is not obj2   obj1 和obj2不是同一个对象

bool类型:

not and or     优先级依次降低

1.2 序列类型操作符

成员关系操作符(int、not in):用来判断一个元素是否属于一个序列。

对象 [not] in 序列

连接操作符(+):把一个序列与另个一个相同的序列连接起来。

seq1 + seq2

对字符串来说,该操作不如把所有子字符串放到一个列表或者可迭代对象中,然后调用join. 对列表来说,推荐用extend()来合并多个列表对象。

重复操作符(*):把一个序列拷贝多份

seq * copies

切边操作符([],[:],[::])

seq[index]

正索引 0 <= index <= len(seq)-1 
负索引 -len(seq)<= index <= -1 
正负索引的区别在于,正索引以序列的开始为起点,负索引以序列的结束为起点。

seq[start_index:end_index]

可以得到从起始索引到结束索引(不包括结束索引)之间的一片元素。起始索引和终止索引都是可选的。并且,开始索引和结束索引值可以超过字符串的长度。

seq[start_index:end_index:step]

第三个索引被用作步长参数。step为负数,可以认为是翻转操作。

None使用来迭代显示整个字符串:

>>> t
'abcde'
>>> for i in [None].extend(range(-1,-len(t),-1)):
...     print t[:i]
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable

>>> for i in [None] + range(-1,-len(t),-1):print t[:i] 
... 
abcde
abcd
abc
ab
a
>>> 

2 内建函数(BIF)

2.1 类型转换

内建函数list(),str(),tuple(),被用做各类序列之间转换。

list(iter)     将可迭代对象转换为列表
str(obj)       把obj对象转化成字符串
unicode(obj)   将对象转化为Unicode字符串
basestring()   string和unicode的父类,不能实例化
tuple(obj)     把一个可迭代对象转换成一个元组对象

2.2 操作

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

len(seq)           返回seq的长度

max(iter,key=None) 返回iter中的最大值

min(iter,key=None) 返回iter中的最小值

reversed(seq)      返回逆序的迭代器

sorted(iter,       接受一个可迭代对象作为参数,
      func=None,   返回有序列表
      key=None,
      reverse=False)       

sum(seq,init)     返回seq和可选参数init的总和

zip([it0,..,itN])  返回一个列表,第一个元素是it01,ite1等的依次第一个,第二个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值