Python 元组类型1

这章我们学习一个新的数据类型,元组类型。简单来说,元组就是一个不可变的列表,言外之意就是元组可以和列表一样,按索引进行取值,但是不能对元组进行修改。

定义元组的方法也很简单,和列表相似,只是定义列表需要中括号,元组只需要小括号,然后用逗号分隔开多个任意类型的值。

元组里面可以放多个任意类型的值,就说明整型。浮点型、字符串都可以放里面,还可以在里面嵌套字典,字符串,甚至可以嵌套元组。现在直接打印一下它和它的type。

t = (1, 1.2, 'ccc', [4, 5, 6], {'a': 1, 'b': 2, 'c': 3}, (7, 8, 9))
print(type(t))

结果类型就是tuple,这也说明了我们定义元组的时候,它背后其实调用的是tuple加括号这个方法,来帮我们创建这个元组的。

但是这里你需要注意一个问题,由于定义元组使用小括号定义的,小括号在Python里面太特殊了,不管是调用python里的各种功能,还是做数学运算和逻辑运算的时候都会用到小括号。

我定义一个元组,然后里面只有一个值,再打印类型。

a = (88)
print(type(a))

结果打印出来的类型是int类型,不是tuple类型。这就是小括号的特殊之处,它有包含的意思。所以当我们定义一个元组,而它只有一个元素的时候,需要在最后加上逗号。

还是上面的代码,我们加上逗号打印看看。

a = (88,)
print(type(a))

结果类型就变成元组类型了。

刚刚我们说了,元组是不可变类型,就是说我们不能修改元组里的元素。

我现在重新定义一个元组。

x = (33, 'f', 2.4

根据我们前面学的知识,我们应该知道列表和字典这些容器类型里面都不是直接存的值,而是存的值的内存地址。

对于咱们学的元组来说,它也是容器类型,而它存值的费那事也是和列表字典一样,存的是内存地址。

也就是说对这个元组来说:

0号索引对应33的内存地址–》指向了对应的值33;

1号索引对应f的内存地址–》指向了对应的值f;

2号索引对应2.4的内存地址–》指向了对应的值2.4。

这是我们前面学过的,理解起来没问题吧?

刚刚我们说的元组不可变其实就是指得是里面的内存地址不可变,一旦我们定义好了这个元组,那么它里面存的这些内存地址就不能发生变化了。

换而言之就是只要元组里存的内存地址不变,那就意味着这个元组没有发生任何变化。

未经允许不得转载:445IT之家 » Python 元组类型1

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏