



|
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 元组和列表的区别