在单个语句中将项目插入 dict 中的特定位置

bob*_*h76 4 python dictionary

在 python 3.6 中,dict 是有序的,所以现在我们可以依赖具有特定位置的项目。我意识到这并不完全准确,但我不记得确切的细节。现在我唯一担心的位置是第零个位置。所以假设我有以下字典:

dict1 = {'a':1,'b':2}
Run Code Online (Sandbox Code Playgroud)

我想将键 {'c':3} 插入第零个位置。我可以用三行代码做到这一点,但我敢打赌有一种更短的方法来做到这一点:

temp_dict = {}
temp_dict.update({'c':3})
dict1 = {**temp_dict,**dict1}
Run Code Online (Sandbox Code Playgroud)

Cor*_*den 7

在此处输入图片说明一条线:

dict1 = {k: v for k, v in ([('c', 3)] + list(dict1.items()))}

蛮好玩的。我什至还没有安装 3.6。

因为我觉得这个任务很有趣,所以这里有一个单行函数,可以将一个项目插入到字典中的任何位置。

insert = lambda _dict, obj, pos: {k: v for k, v in (list(_dict.items())[:pos] + list(obj.items()) + list(_dict.items())[pos:])}
Run Code Online (Sandbox Code Playgroud)

  • 您没有要求它,但这里有一个单行函数可以为任何位置执行此操作!`z = lambda x: {k: v for k, v in (list(dict1.items())[:x] + [('c', 3)] + list(dict1.items())[x: ])}` (3认同)