python基本数据结构为序列,序列中的每一个元素都会被分配一个编号——即元素位置,也成为索引
序列概览
6中内建序列,列表、元组(列表和元组的区别在于序列可以修改,而元组不可以修改)、字符串、Unicode字符串、buffer对象和xrange对象
序列:
>>> deward = ['Edward Gumby',42]
>>> john = ['john Smith',49]
>>> database = [deward,john]
>>> database
[['Edward Gumby', 42], ['john Smith', 49]]
序列常用操作
索引、分片、加、乘、成员资格(检查某个元素是否属于序列的成员),以及计算序列长度、求最大元素和最小元素的内建函数。
序列中的元素编号都是从0开始的,如果使用负数索引时,python会从右边最后一个元素计数,最后一个元素的编号为-1,倒数第二个元素的编号为-2.
索引
>>> greeting = 'Hello'
>>> greeting[0]
'H'
>>> greeting[-1]
'o'
>>> greeting[-2]
'l'
字符串直接使用索引
>>> 'Hello'[1]
'e'
返回结果使用索引操作
>>> fourth=raw_input()[3]
fourth=raw_input()[3]
>>> fourth=raw_input('Year:')[3]
Year:2012
>>> fourth
'2'
分片
访问一定范围内的元素,通过冒号分割的两个索引来实现。第1个索引的元素包含在分片内,而第2个则不包含在分片内。
>>> number=[1,2,3,4,5,6,7,8,9]
>>> number[3:6]
[4, 5, 6]
>>> number[0:1]
[1]
从结尾开始计数
>>> number[-3:-1]
[7, 8]
分品种最左边的索引比它右边的晚出现在序列中
>>> number[-1:-3]
[ ]
序列结尾的元素
>>> number[-3:]
[7, 8, 9]
序列开始元素
>>> number[:3]
[1, 2, 3]
整个序列,则两个索引都为空
>>> number[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
步长,隐式设置,默认为1,按照步长逐个遍历序列的元素,然后返回开始和结束点之间的所有元素
>>> number[0:10:2]
[1, 3, 5, 7, 9]
步长不能为0,否则报错,但是可以为负数,表示从右往左提取元素
序列相加
两种相同类型的序列才可以进行连接操作
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'Hello'+'World'
'HelloWorld'
乘法
用数字X诚意一个序列会生产新的序列,而在新的序列中,原来的序列将被重复x次
>>> 'python' * 5
'pythonpythonpythonpythonpython'
>>> [2]*5
[2, 2, 2, 2, 2]
None、空列表和初始化
>>> sequence=[None]*10
>>> sequence
[None, None, None, None, None, None, None, None, None, None]
成员资格
检查一个值是否在序列中,可以使用in运算符
>>> permissions='rw'
>>> 'w'in permissions
True
>>> 'x' in permissions
False
长度、最小值、最大值
len函数返回序列中所包含元素的数量
mix、max函数分别返回序列中最大和最小的元素
>>> number=[100,34,678]
>>> len(number)
3
>>> max(number)
678
>>> min(number)
34
>>> max(2,3)
3
>>> min(2,3,4)
2