Python通用序列操作

上一篇 / 下一篇  2012-03-13 09:41:00 / 个人分类:Python

基本概念

数据结构:是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构。

Python中有一种名为容器(container)的数据结构。容器基本上是包含其他对象的任意对象。

序列(例如列表和原组)和映射(例如字典)是两类主要的容器。

Python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号———即元素的位置,也称索引。

Python有6中内建序列,这里重点讨论最常用的两种:列表和原组。

列表和原组的主要区别在于,列表可以修改,原组则不能。

通用序列操作:
1、索引(indexing)
e.g.
>>>company="WindRiver"
>>>company[0]
'W'
>>>company[-1]
'r'
2、分片(sliceing),使用分片操作来访问一定范围的元素。通过冒号相隔的两个索引来实现
e.g.
>>>company[0:4]
'Wind'
>>>company[0:-5]
'Wind'
注意:分片操作的实现需要提供两个索引作为边界,第1个索引的元素是包含在分片内,而第2个索引不包含在分片内;最左边的索引比它右边的晚出现在序列中,结果就是一个空序列。
(1)优雅的捷径
>>>company[4:]
'River'
如果分片所得部分包括序列结尾的元素,那么,只需要空最后一个索引即可;这种方法同样适用于序列开始的元素
>>>company[:4]
'Wind'
当然如果需要复制整个序列,就可以将两个索引都置空
>>>company[:]
'WindRiver'
(2) 更大的步长 (step length)
在普通分片中,步长是1,隐式设置
>>>company[::1]
'WindRiver'
>>>company[::2]
'WnRvr'
3、序列相加 (adding)
>>> 'adb'+'adf'
'adbadf'
>>> [1,2]+[3,9]
[1, 2, 3, 9]
>>> 'adb'+[3,2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'list' objects
简单来说,两种相同类型的序列才能进行连接操作。
4、乘法 (multiplying)
>>> 'python'*3
'pythonpythonpython'
>>> [4]*3
[4, 4, 4]
>>> [4,3]*2
[4, 3, 4, 3]
5、成员资格
>>> 'r' in company
True
6、长度,最小值,最大值
>>> len(company)
9
>>> max(company)
'v'
>>> min(company)
'R'

TAG:

 

评分:0

我来说两句

Open Toolbar