在python 3.6中命令dict,所以现在我们可以依赖具有特定位置的项目。我意识到这不完全准确,但我记不起确切的细节。 现在我唯一担心的地方是零位。所以假设我有以下字典:
dict1 = {'a':1,'b':2}
我想将键{'c':3}插入到零位置。我可以用三行代码来做到这一点,但我敢打赌,有一种更短的方法可以做到:
temp_dict = {}
temp_dict.update({'c':3})
dict1 = {**temp_dict,**dict1}
答案 0 :(得分:2)
dict1 = {k: v for k, v in ([('c', 3)] + list(dict1.items()))}
这很有趣。我还没有安装3.6。
因为我觉得这个任务很有趣,所以这里有一个单行函数可以将一个项目插入到dict中的任何位置。
insert = lambda _dict, obj, pos: {k: v for k, v in (list(_dict.items())[:pos] + list(obj.items()) + list(_dict.items())[pos:])}
答案 1 :(得分:1)
你走了。
dict1 = {'c':3, **dict1}
答案 2 :(得分:0)
在 Python 3.6+ 中,您可以定义自己的具有 dict
方法的 insert()
子类:
class MyDict(dict):
def insert(self, pos, new_entry):
items = list(self.items())
items.insert(pos, *tuple(new_entry.items()))
self.clear()
self.update(type(self)(items))
if __name__ == '__main__':
dict1 = MyDict({'a': 1,'b': 2})
dict1.insert(0, {'c': 3})
print(dict1) # -> {'c': 3, 'a': 1, 'b': 2}
子类的实例可以用于常规字典对象所在的任何地方。