namedtuple和冻结字典之间的区别

jam*_*lak 4 python dictionary namedtuple

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

Kar*_*ath 10

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

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

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

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

在内部他们是非常不同的:

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