在数学里,序列也叫数列,是指按照一定顺序排列的一列数,而在程序设计中,序列是一种常见的数据存储方式。
在python中内置了5个常用的序列结构,分别是列表、元组、集合、字典和字符串。
这些序列的结构有以下几个通用操作。
索引
序列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,依此类推。如图所示。
Python比较神奇,它的索引可以是负数。这个索引从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1,倒数第二个元素的索引值为-2,依此类推。如图所示。
verse = ["圣安东尼奥马刺","洛杉矶湖人","休斯顿火箭","金州勇士"]
print(verse[1])
print(verse[-2])
切片
切片操作是访问序列中元素的另一种方法,可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
nba = ["迈克尔•乔丹","比尔•拉塞尔","卡里姆阿卜杜勒•贾巴尔","威尔特•张伯伦",
"埃尔文•约翰逊","科比•布莱恩特","蒂姆•邓肯","勒布朗•詹姆斯","拉里•伯德",
"沙奎尔•奥尼尔"]
print(nba[1:5])
print(nba[0:5:2])
print(nba[:])
如果想要复制整个序列,可以将start 和end参数都省略,但是中间的冒号需要保留。例如,nba[:]就表示复制整个名称为nba的序列。
序列相加
支持两种相同类型的序列相加操作,将两个序列进行连接,使用加(+) 运算符实现。
nba1 = ["史蒂芬•库里","克莱•汤普森","马努•吉诺比利","凯文•杜兰特"]
nba2 = ["迈克尔•乔丹","比尔•拉塞尔","卡里姆阿卜杜勒•贾巴尔","威尔特•张伯伦",
"埃尔文•约翰逊","科比•布莱恩特","蒂姆•邓肯","勒布朗•詹姆斯","拉里•伯德",
"沙奎尔•奥尼尔"]
print(nba1+nba2)
在进行序列相加时,相同类型的序列是指,同为列表、元组或集合等,序列中的元素类型可以不同。
num = [7,14,21,28,35,42,49,56]
nba = ["史蒂芬•库里","克莱•汤普森","马努•吉诺比利","凯文•杜兰特"]
print(num + nba)
乘法
使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。
phone=["华为Mate 30","Vivo X27"]
print(phone*3)
emptylist=[None]*5
print(emptylist)
检查元素是否是序列的成员(元素)
使用in关键字检查某个元素是否是序列的成员,即检查某个元素是否包含在该序列中。
![在这里插入图片描述](
nba = ["迈克尔•乔丹","比尔•拉塞尔","卡里姆阿卜杜勒•贾巴尔","威尔特•张伯伦",
"埃尔文•约翰逊","科比•布莱恩特","蒂姆•邓肯","勒布朗•詹姆斯","拉里•伯德",
"沙奎尔•奥尼尔"]
print("迈克尔•乔丹" in nba)
print("迈克尔•乔丹" not in nba)
计算长度、最大值、最小值
使用len()函数计算序列的长度,即返回序列包含多少个元素;使用max()函数返回序列
中的最大元素;使用min()函数返回序列中的最小元素。
num=[7,15,23,47,98,293,45,69]
print("长度=",len(num))
print("最大值=",max(num))
print("最小值=",min(num))