WEB开发网
开发学院软件开发Python 探索 Python,第 2 部分: 探索 Python 类型的层次... 阅读

探索 Python,第 2 部分: 探索 Python 类型的层次结构

 2007-03-29 12:16:01 来源:WEB开发网   
核心提示: 您可能已经对此有所了解,但在 help> 提示符处输入 int 可以显示那些为以前的 int 类显示的类描述,探索 Python,第 2 部分: 探索 Python 类型的层次结构(5),容器类型到目前为止,已经谈论了许多 Python 语言中使用的简单类型,灵活性较差,但在同一环境

您可能已经对此有所了解,但在 help> 提示符处输入 int 可以显示那些为以前的 int 类显示的类描述。

容器类型

到目前为止,已经谈论了许多 Python 语言中使用的简单类型。但是多数程序并不简单,它们涉及通常由简单类型组成的复杂数据。因此,现在的问题就成了“如何在 Python 中处理复杂数据?”

如果您熟悉面向对象的语言,如 Java 或 C#,那么您可能认为该问题的答案很简单:只需创建一个新类来处理复杂的数据即可。该方法也适用于 Python,原因是 Python 支持通过类创建新类型。但是,在多数情况下,Python 还可以提供更为简单的方法。当您的程序需要一次处理多个对象时,就可以利用 Python 容器类:

tuple

string

unicode

list

set

frozenset

dictionary

这些容器类型提供了两种功能。前六个类型是有序的,最后一个类型 dictionary 则是一个映射。有序类型与映射类型的区别较为简单。有序类型 仅仅是指对象的顺序。所有的有序类型(除 set 和 frozenset 类型外)都支持访问给定顺序的对象。相比之下,映射容器 则用于保存那些对顺序不是很敏感的对象;通过提供可以找到关系值的密钥,就可以从容器中提取值。

容器类型间的另一个不同点来自于它们所持有的数据的特性,下面四种容器类型的顺序是不可变的:

tuple

string

unicode

frozenset

这意味着在您创建了这些容器类型之一后,所存储的数据就不可更改。如果出于某种原因需要更改数据,则需要创建一个新容器来保存新的数据。

后三种容器类型(list、set 和 dictionary)都是可变容器,因此,它们可以根据需要更改保存的任何数据(但在 dictionary 中所使用的密钥是不可变的,就像您房间的钥匙)。虽然可变容器非常灵活,但它们的动态特性会对性能造成影响。例如,tuple 类型,尽管它是不可变的,灵活性较差,但在同一环境中使用时,它们通常比 list 类型快得多。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:探索 Python 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接