第 9 章 元组 元组、文件和其他一切
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本章通过探索tuple(一个不能更改的其他对象的集合)和file(一个连接计算机上外部文件的接口),结束我们对 Python 核心对象类型的深入学习。正如您所看到的,元组是一个相对简单的对象,主要执行您已经学习过的字符串和列表操作。文件对象是一个常用的全功能工具,用于处理计算机上的文件。由于文件在编程中非常普遍,因此在后面的章节中,我们将以更大的示例来补充这里对文件的基本概述。
本章也是本书这一部分的结尾,我们将研究我们所见过的所有核心对象类型的共同属性--相等、比较、对象副本等概念。我们还将简要探讨 Python 工具箱中的其他对象类型,包括None 占位符和namedtuple 混合型;正如您所看到的,尽管我们已经介绍了所有主要的内置类型,但 Python 中的对象故事比我迄今为止所暗示的要广泛得多。最后,在本书这一部分的结尾,我们将介绍一组常见的对象类型陷阱,并探讨一些练习,让您能够用学到的思想进行实验。
备注
本章的范围--文件:与关于字符串的第 7 章一样,我们在这里对文件的研究仅限于大多数 Python 程序员--包括编程新手--需要了解的文件基础知识。特别是,Unicode 文本文件在第 4 章中已经预览过,但我们将把它的全面介绍推迟到第 37 章,作为本书高级主题部分的可选或延迟阅读内容。
在本章中,我们将假设使用的任何文本文件都将按照平台的默认值进行编码和解码,在 Windows 中可能是 UTF-8,而在其他平台上可能是 ASCII 或其他格式(如果你不知道为什么这很重要,你可能不需要事先知道)。我们还将假设文件名在底层平台上正确编码,不过为了便于移植,我们将坚持使用 ASCII 名称。
如果 Unicode 文本和文件对你来说很重要,我建议你先阅读第 4 章预览,在掌握了这里的文件基础知识后再继续阅读第 37 章。对于所有其他人来说,这里的文件内容既适用于我们将在这里遇到的典型文本和二进制文件,也适用于你以后可能会选择探索的更高级的文件处理模式。
元组
我们调查的最后一个集合类型是 Python 元组。元组构建了简单的对象组。它们的工作方式与列表完全相同,不同之处在于元组不能就地更改(它们是不可变的),并且通常被写成括号中的一系列项,而不是方括号。虽然元组不支持那么多的方法,但它们的大部分属性都与列表相同。 下面我们就来快速了解一下它们的基本特性。元组是
- 任意对象的有序集合
与字符串和列表一样,元组是按位置排序的对象集合(即其内容之间保持从左到右的顺序);与列表一样,元组可以嵌入任何类型的对象。
- 通过抵消访问
与字符串和列表一样,元组中的项目通过偏移量(而不是键)进行访问;它们支持所有基于偏移量的访问操作,如索引和切分。
- 属于 "不可变序列 "类别
与字符串和列表一样,元组也是序列;它们支持许多相同的操作。不过,与字符串一样,元组也是不可变的;它们不支持适用于列表的任何就地更改操作。
- 定长、异构、可任意嵌套
由于元组是不可变的,因此如果不复制元组,就无法改变元组的大小。另一方面,元组可以容纳任何类型的对象,包括其他复合对象(如列表、字典、其他元组),因此支持任意嵌套。
- 对象引用数组
与列表一样,元组最好被视为对象引用数组;元组存储其他对象的访问点(引用),元组索引相对较快。
表 9-1重点介绍了常见的元组操作。元组被写成一系列对象(严格地说,是生成对象的表达式),用逗号和 分隔,通常用括号括起来。空元组只是一个括号对,里面什么都没有。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access