Python中包含有六种常见的内建序列(list , tuple , string , Unicode string , buffer ,xrange)
通用序列操作
- 索引 indexing
- 分片 slicing
- 相加 adding
- 相乘 multiplying
- 长度,最大值,最小值
索引 indexing
序列是Python中最基本的数据结构
其中的每一个元素都分配数字(在序列中代表索引),第一个是0,第二个是1,以此类推
同时,序列也可以从右边开始索引:最右边的元素引值为-1
greeting = 'hello world'
print(greeting[0])
>>> 'h'
'hello world'
print('hello world'[1])
>>> 'e'
'hello world'
print('hello world'[-3])
>>> 'r'
索引既可以对变量的引用操作,也可以直接操作序列,还可以操作函数的返回序列
分片 slicing
索引用来对单个元素进行访问,而分片则是对一定范围内的元素进行访问(通过 “ : ”相隔的两个索引实现)
分片操作的实现需要提供两个索引作为边界,第一个索引包含在分片内,第二个索引的元素则不包含在内
即:a <= x <b ,x是我们需要访问的元素,a为第一个分片索引,b为第二个
number = [1,2,3,4,5,6,7,8,9,10]
print(number[0:3]) # 索引number列表的0,1,2三个位置的元素
>>> [1,2,3]
print(number[-3:-1]) # 索引number列表的-3,-2两个位置的元素
>>> [8,9]
步长 step length
在普通分片中,步长默认为1(可正可负,通常为隐式设置,一般不显示)
对于正数步长,会从左往右提取元素(开始点小于结束点);负数则相反(开始点大于结束点)
print(number[0:10:2])
>>> [1,3,5,7,9]
print(number[0:10:3])
>>> [1,4,7,10]
print(number[2:6:3])
>>> [3,6]
print(number[2:5:3])
>>> [3]
print(number[::3])
>>> [1,4,7,10]
print(number[10:0:-2])
>>> [10,8,6,4,2]
print(number[5::-2])
>>> [6,4,2]
print(number[:5:-2])
>>> [10,8]
序列的加法和乘法,长度,最大值,最小值
- 只有类型相同的序列才可以通过 “ + ”进行连接操作
- 序列的乘法可以帮我们快速做一些初始化操作
- 针对序列的三个函数:len(长度), max(最大值), min(最小值)
print([1,2,3] + [a,'ok',0])
>>>[1,2,3,a,'ok',0]
print([7]*3)
>>>[7,7,7]
number = [300,200,800,500]
print(len(number))
>>> 4
print(max(number))
>>> 800
print(min(number))
>>> 200