序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,该数字被称为索引或位置。通过索引可以取出相应的值。
序列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,以此类推。
Python的索引可以是负数,表示从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1,倒数第二个元素的索引值为-2,以此类推。
通过索引可以访问序列中的任何元素。
【例3.1】定义一个包括4个元素的列表,要访问它的第3个元素和最后一个元素,代码如下:
verse = ['a', 'b', 'c', 'd'] print(verse[2]) # 输出第3个元素 print(verse[-1]) # 输出最后一个元素
结果如下:
c d
切片是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
sname[start:end:step]
参数说明:
● sname:序列的名称。
● start:切片的开始位置(包括该位置),如果不指定,则默认值为0。
● end:切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
● step:切片的步长,如果省略,则默认值为1,当省略步长时,end后的冒号也可省略。
在进行切片操作时,如果指定了步长,那么将按照该步长遍历序列中的元素,否则将一个一个地遍历序列。
【例3.2】随机生成一个列表,对该列表进行切片操作。
>>> a = list(range(10)) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[:5] [0, 1, 2, 3, 4] >>> a[5:] [5, 6, 7, 8, 9] >>> a[2:8] [2, 3, 4, 5, 6, 7] >>> a[::2] [0, 2, 4, 6, 8] >>> a[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
在Python中,支持两种相同类型的序列相加,即将两个序列进行连接,不会去除重复的元素,使用加(+)运算符实现。
【例3.3】将两个列表相加。
nba1 = ["德怀特,霍华德", "德维恩,韦德", "凯里,欧文", "保罗,加索尔"] nba2 = ["迈克尔,乔丹", "比尔,拉塞尔", "卡里姆,阿布杜尔,贾巴尔”,”威尔特,张伯伦", "埃尔文, 约翰逊", "科比,布莱恩特", "蒂姆,邓肯", "勒布朗,詹姆斯", "拉里,伯德", "沙奎尔,奥尼尔"] print(nba1 + nba2)
运行上面的代码,将输出以下内容:
['德怀特,霍华德', '德维恩,韦德', '凯里,欧文', '保罗,加索尔', '迈克尔,乔丹', '比尔,拉 塞尔', '卡里姆,阿布杜尔,贾巴尔”,”威尔特,张伯伦', '埃尔文,约翰逊', '科比,布莱恩特', '蒂姆, 邓肯', '勒布朗,詹姆斯', '拉里,伯德', '沙奎尔,奥尼尔']
在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。
在Python中,使用数字n乘以一个序列会生成新的序列,新序列的内容为原来序列被重复n次的结果。
【例3.4】实现把一个序列乘以3生成一个新的序列并输出,从而达到“重要事情说三遍”的效果。
phone = ["IPhone 11", "小米10 PRO"] print(phone * 3)
运行上面的代码,将输出以下内容:
['IPhone 11', '小米10 PRO', 'IPhone 11', '小米10 PRO', 'IPhone 11', '小米 10 PRO']
在Python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中,其语法格式如下:
value in sequence
参数说明:
● value:表示要检查的元素。
● sequence:表示指定的序列。
Python中,也可以使用not in关键字实现检查某元素是否不包含在指定的序列中。
【例3.5】检测某个元素是不是序列的成员。
number=[1,2,3,4,5] if 1 in number: print("1 in number") if 0 not in number: print("0 not in number")
运行上面的代码,输出结果如下:
1 in number 0 not in number
在Python中,提供了内置函数计算序列的长度、最大值和最小值:使用len()函数计算序列的长度,即返回序列包含多少个元素;使用max()函数返回序列中的最大元素;使用min()函数返回序列中的最小元素。
【例3.6】计算序列的长度。
mylist = ["apple", "orange", "cherry"] x = len(mylist) print(x)
运行上面的代码,输出结果如下:
3