元组与列表类似,也是一种序列,但元组中元素不能被改变,并且通常写成圆括号中的一系列元素。
元组的创建
创建元组的语法非常简单,只需用逗号将元素隔开,具体示例如下:
tuple1 = 1, 2, 3, 4
tuple2 = '隼与鱼', 18, 100
但一般是通过圆括号将元素括起来,具体示例如下:
tuple3 = (1, 2, 3, 4)
tuple4 = ('隼与鱼', 18, 100)
此外,还可以创建一个空元组,具体示例如下:
tuple5 = ()
但创建只包含一个元素的元组,其方法有点特殊,具体示例如下:
tuple6 = (1,)
注意此处逗号必须添加,如果省略,则相当于在一个普通括号内输入了一个值,此处添加逗号后,就通知解释器,这是一个元组,具体示例如下:
tuple6 = (1,)
tuple7 = (1)
如果通过print()函数将tuple6与tuple7分别进行输出,则得到以下结果:
(1,)
1
通过输出结果可得出,第一个为元组,第二个为一个整数。
元组的索引
元组可以使用下标索引来访问元组中的一个元素,也可以使用分片访问多个元素,如下所示。
1 tuple = ('简书', '作者', '隼与鱼')
2 print(tuple[0])
3 tuple1 = tuple[0:-1]
4 print(tuple1)
5 tuple2 = tuple[1:]
6 print(tuple2)
运行结果如下图所示。

在上例中,第2行通过下标索引访问元组中的元素,第3行与第5行对元组进行分片,元组的分片还是元组,就像列表的分片还是列表一样。
注意不能通过下标索引修改元组中的元素,具体示例如下:
tuple[0] = 'www.sunyuyu.com' # 错误
上述语句运行时会报错,因为元组中元素不能被修改。
初学者学习元组时,可能会疑惑既然有列表,为什么还需要元组,这是由于如下原因:
- 元组的速度比列表快。如果定义了一系列常量值,而所做的操作仅仅是对它进行遍历,那么一般使用元组而不是列表。
- 元组对需要修改的数据进行写保护,这样将使得代码更加安全。
- 一些元组可用作字典键。
元组的遍历
元组的遍历与列表的遍历类似,都可以通过for循环实现,如下所示。
1 tuple = ('简书', '作者', '隼与鱼')
2 for name in tuple:
3 print(name)
运行结果如下图所示。

在上例中,for循环依次将列表中的元素赋值给name并通过print()函数输出。
元组的运算
元组的运算与列表的运算类似,如下所示。
1 tuple1 = ('简书', '作者', '隼与鱼')
2 tuple2 = ('jianshu', 'sunyuyu')
3 print(tuple1 + tuple2)
4 print(tuple2 * 3)
5 print('简书' in tuple1)
6 print('隼与鱼' not in tuple2)
运行结果如下图所示。

在上例中,元组的运算与列表的运算相似。
元组与列表转换
list()函数可以将元组转换为列表,而tuple()函数可以将列表转换为元组,如下所示。
1 tuple1 = ('简书', '作者', '隼与鱼')
2 list1 = list(tuple1)
3 print(list1)
4 tuple2 = tuple(list1)
5 print(tuple2)
运行结果如下图所示。

在上例中,第2行通过list()函数将元组tuple1转换为列表list1,第4行通过tuple()函数将列表list1转换为元组tuple2。
网友评论