namedtuple和冻结字典之间的区别

时间:2012-03-31 23:45:10

标签: python dictionary namedtuple

我知道没有冻结的dict数据类型但是如果有一个与namedtuple有什么不同。在我看来,namedtuple执行所需的操作,但显然它没有。那有什么不同呢?

2 个答案:

答案 0 :(得分:10)

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

  • namedtuple键总是字符串,但有一些限制:
  

任何有效的Python标识符都可以用于字段名,除了   以下划线开头的名称。有效标识符包括   字母,数字和下划线但不以数字或开头   下划线,不能是关键字,如class,for,return,global,   通过,或提高。

  • namedtuple始终可以作为常规元组进行访问。

在内部他们非常不同:

  

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

答案 1 :(得分:0)

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