为什么元组和列表? | 第二部分 类型与操作 —— 第 9 章: 元组,文件和其他 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-江南app体育官方入口

未匹配的标注

这似乎是当向初学者教授元组时总是会被提及的第一个问题:如果我们有了列表,为什么还需要元组?一部分原因是历史造成的;python之父是一个训练有素的数学家,且他被引用为“将元组视为对象的简单关联,列表视作随时间而改变的数据结构”。事实上,单词“tuple”的使用源自数学,也来自它经常用于(代表)关系式数据库表格的行。

然而,最好的回答似乎是元组的不变性提供了某种完整性——可以确定元组不会通过程序其他地方的另一个引用而被改变,但列表却没有这种保证。因此,元组和其它不可变对象,起到和其它语言中的“constant”声明类似的作用,虽然python中常量的概念和对象相关,而非变量。

元组还能被用在列表不能被使用的地方——比如,作为字典键(参见第8章的稀疏矩阵例子)。一些内置操作也可能需要或暗示元组而非列表(比如:在字符串格式表达式中的替换值),

person = ('alice', 25, 1.65)
# using a tuple to store the substitution values
message = 'my name is {}, i am {} years old, and my height is {} meters.'.format(*person)
print(message)

然而这些操作在最近几年通常已经被推广而更加灵活。作为一个经验法则,列表是可能需要改变的有序集合的首选工具;元组则可以处理固定关联的其它情况。

本文章首发在 江南app体育官方入口 网站上。

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图