列表和分组
序列概览:
数据结构是通过某种方式组织在一起的数据元素的集合。这些元素可以是数字、字符,甚至可以是其他数据结构。
在python中,最基本的数据结构是序列(sequence)。
序列中的每一个元素被分配一个序号----即元素的位置,也称为索引、下标。第一个索引是0,第二个索引是1,以此类推。
Python包含6种内建的序列,此次重点讨论最常用的两种类型:列表、元祖。其他内建序列类型包括:字符串、Unicode字符串、buffer对象和xrange对象。接下来讲解对所有序列都通用的操作。
列表和元祖的创建:
列表和元祖主要的区别在于:列表可以修改,而元祖不可修改。也就是说如果需要根据要求来添加元素,那么列表可能会更好用;而出于某些原因,序列不能修改时,使用元祖则更为合适。
创建一个列表,只要把逗号分隔的不同数据项使用方括号括起来即可;
创建一个元祖,只要把逗号隔开的不同数据项使用小括号括起来即可,如果元组里只有一个元素的话,那么你必须在这个元素后面加一个逗号,否则它不是元组。
通用序列操作:
所有序列类型都可以进行某种特定的操作。这些操作包括索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员(成员资格),除此之外,还有计算序列长度、找出最大元素和最小元素的内建函数。
1. 索引
序列中的所有元素都是有编号的:从0开始递增。这些元素可以通过编号分别访问。这些编号就是索引。索引0指向第一个元素。
使用负数索引时,python会从右边,就是最后一个元素开始计数。最后一个元素的位置编号就是-1。
如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作。例如你只对用户输入年份的第4个数字感兴趣:
2.分片
索引访问单个元素,分片可以访问一定范围的元素。分片通过冒号隔开的两个索引来实现。
第一个索引是要提取的第一个元素的编号,第二个索引是分片之后剩余部分的第一个元素的编号;简单来说,就是“顾头不顾尾”。
步长:进行分片的时候,默认步长为1;我们也可以显示设置步长,若步长被设置为大于1的数,则会跳过某些元素。
例如:步长为2的分片包括的是从开始到结束每隔1个的元素
步长不可以为0,会报错;但是可以为负数,此时分片从右往左提取元素。
1、当步长为正数时,开始索引要小于结束索引,否则会取到空
2、当步长为负数时,开始索引要大于结束索引,否则会取到空
3、当步长为负数,开始索引为空时,开始索引默认为最后一个索引+1
4、当步长为负数,结束索引为空时,结束索引默认为0
3.序列相加
通过使用加运算符可以进行序列的连接操作。