首页 > 解决方案 > 有没有办法在字典的开头添加新值

问题描述

我有这本 python 字典

my_dic = {
     0:{"food":"banana"},
     1:{"food":"apple"},
     2:{"food":"orange"}
}

我想当我从未向my_dic添加新值时, 我希望它位于 my_dic的开头,键为 0,所以my_dic看起来像这样

my_dic = {
     0:{new value},
     1:{"food":"banana"},
     2:{"food":"apple"},
     3:{"food":"orange"}
}

标签: pythonpython-3.xdictionary

解决方案


这是你可以做到的

my_dic = {
     0:{"food":"banana"},
     1:{"food":"apple"},
     2:{"food":"orange"}
   }

my_dic = {0: "New value", **{k+1: v for k, v in my_dic.items()}}

这基本上创建了一个新的字典并将旧的字典放在最后。

这返回

{0: 'New value', 1: {'food': 'banana'}, 2: {'food': 'apple'}, 3: {'food': 'orange'}}

由于这不是高性能的,因此您应该检查是否可以使用其他数据结构。许多评论者建议使用 a collections.deque(),这也是我自己会选择的。


推荐阅读