Dict相对于OrderedDict的优势

5
我发现Python字典不会按照插入顺序存储键是很烦人的。最近,我开始使用OrderedDict,它更方便使用,因为它解决了这个缺点(例如,在迭代CSV文件的列时,列的顺序应该与字典的键顺序匹配)。
话虽如此,字典是否有优于OrderedDict的明显优势?如果是这样,那它们是什么?

我不喜欢OrderDict的字符串表示,因此经常将它们转换为普通的dict以供显示。维护顺序可能会有一些额外开销,但这是该功能的代价(坦白地说,我从未注意到)。 - martineau
请注意,在Python 3.5中,OrderedDict将成为内置类型,并将用于某些事情(例如**kwargs)。 - o11c
有一个关于(容器)类的普遍规则 - 不仅适用于Python:更多的功能=>更多的开销,更多的内存=>更慢。当然,假设可比较的容器类型。这取决于您需要什么以及您可以/愿意接受多少缺点。就像在现实生活中一样:没有免费的午餐。 - too honest for this site
1个回答

5
一个字典是一种更简单的数据结构,它占用更少的空间并且速度更快。它只需要维护一个哈希表,而 OrderedDict 则需要同时维护一个哈希表和一个链表。
如果你不关心键的顺序,那就选择更简单的选项。
此外,字典也有语言级别的支持。输入 {k1: v1, k2: v2} 很容易。这是字典的另一个优势。或许是不公平的,但事实就是如此。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接