替换OrderedDict中的元素?

时间:2015-10-29 04:03:26

标签: python ordereddictionary

我应该删除索引处的项目并在索引处添加项目吗?

我应该在哪里查找OrderedDict类的来源?

2 个答案:

答案 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