Python namedtuple和冻结dict之间的区别

Python namedtuple和冻结dict之间的区别,python,dictionary,namedtuple,Python,Dictionary,Namedtuple,我知道没有冻结的dict数据类型,但如果有,它与namedtuple有什么不同。在我看来,namedtuple执行所需的操作,但显然它没有。那么区别是什么呢?区别很简单:A不是A。这是两种完全不同的数据结构。从API的角度来看,可能不多,但: namedtuple键始终是字符串,但有一些限制: 任何有效的Python标识符都可以用于字段名,但 以下划线开头的名称。有效标识符包括 字母、数字和下划线,但不要以数字或下划线开头 下划线和不能是关键字,例如class、for、return、glob

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

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

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

  • namedtuple
    键始终是字符串,但有一些限制:
任何有效的Python标识符都可以用于字段名,但 以下划线开头的名称。有效标识符包括 字母、数字和下划线,但不要以数字或下划线开头 下划线和不能是关键字,例如class、for、return、global、, 通过,或提高

  • namedtuple
    s始终可以作为常规元组访问
在内部,它们非常不同:

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


是的,但我的意思是,它似乎执行了通过键访问值所需的操作。“它们不同”并不是对“它们有何不同”问题的回答。问题还不够清楚——他问的是它们之间的差异,好像它们是一样的,他无法分辨出差异。或者也许我不太理解这篇文章:)