5

我知道没有冻结的 dict 数据类型,但如果有的话,它与命名元组有何不同。在我看来,namedtuple 执行了所需的操作,但显然它没有。那么有什么区别呢?

4

2 回答 2

11

不过,从 API 的角度来看,可能并不多:

  • namedtuple键总是带有一些限制的字符串:

除了以下划线开头的名称外,任何有效的 Python 标识符都可以用于字段名。有效标识符由字母、数字和下划线组成,但不以数字或下划线开头,并且不能是关键字,例如 class、for、return、global、pass 或 raise。

  • namedtuples 总是可以作为常规元组访问。

在内部,它们非常不同:

命名元组实例没有每个实例的字典,因此它们是轻量级的,并且不需要比常规元组更多的内存。

于 2012-04-01T00:03:50.663 回答
-2

区别很简单: ADictionary不是Tuple. 这是两种完全不同的数据结构。

于 2012-03-31T23:56:30.190 回答