班级新来了一个女同学 Joe ,如果要记录她的名字、性别和年龄,可以选用 Python 的哪种数据类型来保存呢?
概述
实际上, Python 提供了一种数据类型 —— 元组 ( tuple ) ,可以很好地保存此类数据。 元组是一种 有序集合,用括号 () 将元素包含在内,各个元素之间以 逗号 隔开。
例如,我们可以这样来存储 Joe 的信息,包括名字、性别和年龄:
|
|
下标访问
在 Python列表对象入门 一节,我们知道了如何通过 下标 访问列表元素。 其实,我们也可以通过下标来访问元组的元素。 例如,Joe 的年龄在元组中的下标是 2,因此,可以这么获取数据:
|
|
看到这里,有没有发现元组和列表的结构很相似? 两者都是有序集合,并且可以通过下标来访问元素。 那么,元组有什么特别的吗?
不可变
与列表不同,元组是一种不可变的数据类型。 那不可变怎么解读呢? 我们先尝试改变 Joe 的年龄,看看会发生什么?
|
|
程序报错了!很明显,我们并没有成功改变 Joe 的年龄:
|
|
通过以上的例子,我们可以知道,不可变指的是不可改变元组内的元素。 也就是说,元组内的元素在一开始创建后,便不可改变。
遍历
元组与列表一样,也是可迭代对象。因此可以用 for 语句对元组进行遍历:
|
|
我们通过遍历,将元组内的元素依次打印到屏幕上。
删除
元组内元素不可变,自然也是不可删除。 但是,我们可以使用 del 关键字,来删除整个元组。
|
|
这里,我们已经成功删除了 student 这个元组。 因此,访问时会报未定义的错误。
单元素元组
如果我们要创建的元组只有一个元素,那该怎么做呢? 你们也许会想,这不是很简单吗?直接敲了下面这行代码:
|
|
等等,真的是这样吗? 我们来看看创建的 a 到底是不是元组类型:
|
|
很显然,a 是 int 类型,并不是一个 tuple 。
实际上,这里的 () 被当做普通括号来用,影响运算符的优先级。 a = (50) 等价于 a = 50 。
那该如何创建只有一个元素的元组呢?我们只需在元素后面加个逗号即可,以区分 () 的作用:
|
|
【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注: