元组类型简介
使用括号包围的数据结构是元组(tuple)。例如:
1 >>> (1,2,3)
2 (1, 2, 3)
3
4 >>> T = (1,2,3,)
5 >>> T
6 (1, 2, 3)
元组和列表一样,都是容器型的数据结构,且都是序列,所以容器中的元素都是按照索引位置有序存放的。所以,可以进行索引取值、切片等序列通用操作。
不同的是,元组是不可变序列,无法原处修改,意味着修改元组必须创建新的元组对象。实际上元组的概念来源于数学,在关系型数据库中用来表示一行数据对象,而行数据对象是固定不变的完整、稳定结构,python的元组也一样隐含的是完整性、稳定性。
我是一名python开发工程师,整理了一套python的学习资料,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习、面试真题等。想要的可以进群:688244617免费领取。不可变序列同样意味着可以使用hash()内置函数进行hash,也就是说它是hashable的。
hashable的类型是稳定的数据,可以放在一些需要稳定结构的地方,比如Set、dict的key,它们内部都是通过hash后的数据存放的。hashable意味着不同对象的hash值不同。比如类的实例对象全都是不同的,之所以不同是因为它们默认就是hashable的,不同对象的hash值不同。
元组的结构
元组可以看作是不可变的列表。它们的结构非常类似,都是在容器中存放元素的引用地址。
它的结构图如下:
因为元组是不可变对象,所以修改元组数据会报错。也就是说,元组中的保存的引用地址是不可变的。
1 >>> T = (1111,2222,3333,4444)
2
3 >>> T[0] = 11111
4 Traceback (most recent call last):
5 File "<stdin>", line 1, in <module>
6 TypeError: 'tuple' object does not support item assignment
觉得文章还可以的话不妨点个赞,有任何意见或者看法欢迎大家评论!