无需赘述(无论如何,它们都是高度依赖于实现的,并且可能会由于下一个天才而失效并调整字典的实现):
您会发现,尽管存在一些内存差异,但性能不应有任何明显的差异。我认为,后者并不是很明显。一元素dict是1??40字节,十元素元组也是140字节(根据Python 3.2 sys.getsizeof
)。因此,即使有十个级别的嵌套(已经很不现实了,我的直觉也是如此),您的差异还是会略大于一kB- 如果嵌套的dict有多个项目(取决于确切的加载因子),差异可能会更小。对于具有数百个这样的数据结构存储在内存中的数据处理应用程序来说,这太多了,但是大多数对象创建的频率并不高。
您应该简单地问自己,哪种模型更适合您的问题。考虑第二种方法要求您一次拥有一个值的所有键,而第二种方法允许递增地到达那里。