1.元组类型简介
使用括号包围的数据结构是元组(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值不同。
2.元组的结构
元组可以看作是不可变的列表。它们的结构非常类似,都是在容器中存放元素的引用地址。
它的结构图如下:
因为元组是不可变对象,所以修改元组数据会报错。也就是说,元组中的保存的引用地址是不可变的。
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
觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!