零基础学Python(第2版)
上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 元组和列表的区别