Python是一种强大而灵活的编程语言,它的核心特点之一就是序列。序列是Python中的一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。序列好比如是一家旅店,那么店中的每个房间就如同序列存储数据的一个个内存空间,每个房间所特有的房间号就相当于索引值。也就是说,通过房间号(索引)我们可以找到这家旅店(序列)中的每个房间(内存空间)。Python中有三种比较常见的序列类型分别为:列表、元组和字符串。
1、Python中序列的三种基本类型
列表 (list):列表是一种有序的序列,它可以包含任何类型的元素,并且是可变的。列表用方括号[]表示,其中的元素用逗号分隔。例如: list1 = ['length', 'width', 'height']
元组 (tuple):元组也是一种有序的序列,和列表类似,但是元组是不可变的。元组用圆括号()表示,其中的元素用逗号分隔。例如: tuple1 = ('length', 'width', 'height')
字符串 (str):字符串是一种有序的序列,它由一些字符组成,而且也是不可变的。字符串用引号括起来。例如: str = "Do you like Python"
注意上面的“[]”和“()”都必须是在英文输入法状态下输入的。在上一章教程中,我们已经简单讲解了列表和字符串的操作,包括索引和切片等。其实,Python中大部分序列都可以进行通用操作,包括索引、切片、相同类型序列相加(组合)、重复(乘法)、检查成员、长度、遍历、最大值和最小值。
2、序列的索引
序列是Python中最基本的数据结构,序列的每个元素都分配了一个数字,代表了它在序列中的索引位置,这个数字可以是从左往右的正整数索引,也可以是从右往左的负整数索引,通过索引可以对序列的元素进行访问。
从左往右的正整数索引:在Python序列中从左边往右边数,从“0”开始计数,第一个元素的索引值为0,第二个元素的索引值为1,以此类推。假设序列中共有n个元素,那么最后一个元素的索引值为n-1。
动手练一练:
# 列表
a = [5, 6, 7, 8]
print('列表')
print(a[0]) # 输出 5
print(a[1]) # 输出 6
print('-----这是虚线------')
# 元组
b = (5, 6, 7, 8)
print('元组')
print(b[0]) # 输出 5
print(b[1]) # 输出 6
执行以上代码,输出结果为:
列表
5
6
-----这是虚线------
元组
5
6
上面的例子中,序列中的元素是从“0”开始从左往右编号的,元素通过编号进行访问。“列表”和“元组”中索引使用的语法都是一样的,都是变量后面加中括号[],然后在中括号中输人所需元素的编号。
从右往左的负整数索引:在Python序列中从右边往左边数,最后一个元素的索引值为 -1,倒数第二个元素的索引值为 -2,以此类推。假设序列中共有n个元素,那么第一个元素的索引值为-n。(注意:在采用负数作为索引值时,是从 -1 开始的,而不是从 0 开始的,即最后一个元素的下标为 -1,这是为了防止与第一个元素重合。)
动手练一练:
# 列表
a = [5, 6, 7, 8]
print('列表')
print(a[-1]) # 输出 8
print(a[-2]) # 输出 7
print('-----这是虚线------')
# 元组
b = (5, 6, 7, 8)
print('元组')
print(b[-1]) # 输出 8
print(b[-2]) # 输出 7
执行以上代码,输出结果为:
列表
8
7
-----这是虚线------
元组
8
7
上面的例子中,序列的索引可以从右边往左边索引,只要在前面加个“-”(负号)即可。