
上QQ阅读APP看书,第一时间看更新
4.4 序列
序列是具有索引和切片能力的集合。元组、列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组、列表和字符串都属于序列。下面【例4-9】这段代码演示了序列的索引功能。
【例4-9.py】
01 #索引操作 02 tuple = ("apple", "banana", "grape", "orange") # 定义tuple元组 03 list = ["apple", "banana", "grape", "orange"] # 定义list列表 04 str = "apple" # 定义str字符串 05 print (tuple[0]) 06 print (tuple[-1]) 07 print (list[0]) 08 print (list[-1]) 09 print (str[0]) 10 print (str[-1])
【代码说明】
·第5、6行代码访问元组的第1个元素和最后一个元素。输出结果:
apple orange
·第7、8行代码访问列表的第1个元素和最后一个元素。输出结果:
apple orange
·第9、10行代码访问字符串的第1个字符和最后一个字符。输出结果:
a e
下面【例4-10】这段代码演示了序列的分片功能。
【例4-10.py】
01 #分片操作 02 tuple = ("apple", "banana", "grape", "orange") 03 list = ["apple", "banana", "grape", "orange"] 04 str = "apple" 05 print (tuple[:3]) 06 print (tuple[3:]) 07 print (tuple[1:-1]) 08 print (tuple[:]) 09 print (list[:3]) 10 print (list[3:]) 11 print (list[1:-1]) 12 print (list[:]) 13 print (str[:3]) 14 print (str[3:]) 15 print (str[1:-1]) 16 print (str[:])
【代码说明】
·第5~8行代码依次输出如下。
('apple', 'banana', 'grape') ('orange',) ('banana', 'grape') ('apple', 'banana', 'grape', 'orange')
·第9~12行代码依次输出如下。
['apple', 'banana', 'grape'] ['orange',] ['banana', 'grape'] ['apple', 'banana', 'grape', 'orange']
·第13~16行代码依次输出如下。
app le ppl apple
注意 分片seq[:3]表示从序列第1个元素到第3个元素的值,分片[:]获得整个序列的值。
元组和列表都具有序列的特性,但是它们的区别也很明显。元组是只读的一组数据,而且元组没有提供排序和查找的方法。列表的数据可读写,而且提供丰富的操作方法,支持排序、查找操作。元组的数据通常具有不同的含义,例如坐标(x,y)可以表示为一个元组,x轴坐标和y轴坐标的含义是不同的。列表的数据通常具有相同的含义,例如[(x1,y1),(x2,y2)]表示为一个列表,这个列表中有两组坐标值,每组坐标表示的意义是相同的,它们都表示直角坐标系中的某个位置。表4-3说明了元组和列表的区别。
表4-3 元组和列表的区别
