python通用序列操作_序列的几个通用操作介绍

Sequence 是 Python 的一种内置类型(built-in type),内置类型就是构建在 Python Interpreter 里面的类型,几个基本的 Sequence Type 比如 list(表),tuple(定值表,或翻译为元组),range(范围)可以看作是 Python Interpreter 定义了这样三个 class。

序列有着相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,而要想一次得到多个元素,我们可以使用切片,下表偏移量从0开始,总元素数减1结束。

Python 在操作一组数据时,通常是用序列来表示这组信息。(序列也可以包含其他序列)

Python还有一种叫做容器的数据结构。容器是包含其他对象的任意对象。序列(如元组和列表)和映射(比如字典)就是两类主要的容器。序列的每个元素有自己的编号(元组可以作为字典的键名),而映射的每个元素则有一个自己的名字(键)。另外还有种容器类型既不是序列也不是映射,叫做集合。

通用的序列操作

所有序列类型的数据结构都可以进行某些特定的操作,如;索引 、分片 、加 、乘 和检查每个元素是否属于序列的成员(成员资格 )。序列类型的操作符如下:

1. 索引

序列的所有元素都有自己的编号,从0开始,通过编号访问即为索引。

>>>indexing = 'python'

>>>indexing[1]

'y'

>>>indexing[-1]

'n'

或者字符串直接索引

>>>'python'[0]

'p'

2. 切片操作符([,]/[:]/[::]) / 分片

使用索引是用来访问单个元素,而使用分片操作是用来访问一定范围内的元素。分片是通过冒号相隔的两个索引来实现。

>>> sliceing = 'python'

>>> sliceing[9:33]

'http://www.nowamagic.net'

>>>

>>>num= [1,2,3,4,5,6]

>>>num[3:6]

[4, 5, 6]

>>>num[-3:-1]

[4, 5]

>>>num[-3:]

[4, 5, 6]

>>>num[:]

[1,2,3,4,5,6]

分片有个隐式的设置:步长。上面的步长都为1。

比如:

>>>num= [1,2,3,4,5,6]

>>>num[3:6:1] #这边是个隐藏的步长1

[4, 5, 6]

>>>num[3:6:2] #步长改为2

[4, 6]

3. 连接操作符(+) / 序列相加

通过加号来进行序列的连接操作。

有几个要注意的地方:

类型必须相同;

返回一个新序列;

并不推荐(效率不高);

与join()、extend()之间的比较;

>>>[1,2]+[3,4]

[1,2,3,4]

>>>[1,2]+'python'

TypeError: can only concatenate list (not "str") to list

#报错了,相同类型的序列才能进行连接操作。

4. 重复操作符 / 乘法

用数字x乘以一个序列得到新的序列,新的序列为原来的序列重复x次。

>>>[1] * 3

[1, 1, 1]

再比如:

>>> str="abc"

>>> str*4

'abcabcabcabc'

注意:

执行copy,创建新序列;

序列后面是1个*;

*后面必须是整型;

该操作符返回一个新的包含多份原对象copy的对象。

5. 成员资格 (检测元素是否属于序列的成员)

要检查一个值是否在序列中,可以使用in运算符。返回的是布尔值。

>>>per = 'python'

>>>'py' in per

True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值