我应该删除索引处的项目并在索引处添加项目吗?
我应该在哪里查找OrderedDict
类的来源?
答案 0 :(得分:2)
来自Python文档:
如果新条目覆盖现有条目,则原始插入位置保持不变。删除一个条目并重新插入它将把它移到最后。
答案 1 :(得分:0)
OrderedDict
使用值的位置(如果已存在); 如果不是,只需将其视为新值并在最后添加即可。
这是in the documentation。如果您需要替换并维护订单,则必须手动执行:
od = OrderedDict({i:i for i in range(4)})
# od = OrderedDict([(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)])
# Replace the key and value for key == 0:
d = OrderedDict(('replace','key') if key == 0 else (key, value) for key, value in od.items())
# d = OrderedDict([('replace', 'key'), (1, 1), (2, 2), (3, 3), (4, 4)])
# Single value replaces are done easily:
d[1] = 20 # and so on..
此外,在文档页面的顶部,您将看到对该文件的引用,其中包含OrderedDict
类的源代码。它位于 collections.py
,实际上是first class defined。