元组是Python中常用的一种数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元组。元组是“写保护”的,即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的元素代表不同的数据项。
元组是Python内置的数据结构。元组由一系列元素组成,所有元素被包含在一堆圆括号中。创建元组时,可以不指定元素的个数,相当于不定长的数组,但是一旦创建后就不能修改元组的长度。元组创建格式如下:
t = (1, 2, 3, "3")
定义空元组:
t = ()
注意:当创建的元组中只有一个元素时,元素后的 逗号一定不可以省略!
例如:
正确写法:
tuple1 = ("3",)
tuple2 = ("hello",)
tuple3 = (3,)
由于元组不能添加、删除任何元素,也不能对元素进行赋值操作,因此,元组不存在任何方法。
与C或Java不同的是,Python中的元组支持分片索引和负数索引,这两个特性是Python的特殊用法。负数索引从元组的尾部开始计数,最尾端的元素索引为“-1”,倒数第二个为“-2”。
例如:
t = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(t[-1])
print(t[-9])
运行结果:
9
1
分片(slice)是元组的一个子集,分片指定的是从第1个索引到第2个索引(不包括第2个索引所指向的元素)所指定的所有元素。分片索引可以为正数或负数,两个索引之间用冒号分隔。例如:
t = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(t[0:9])
print(t[1:3])
print(t[7:-1])
print(t[-4:-1])
运行结果:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
(2, 3)
(8,)
(6, 7, 8)
另外,元组还可以由其他元组组成。例如,二元元组可以表示为:
t = ((1, 2), ("hello", 3), ("apple", "orange", "banana"))
对上面的元组进行操作:
print(t[1][0])
print(t[2][1:-1])
运行结果为:
hello
('orange',)