How to insert key-value pair into dictionary at a specified position?(如何在指定位置将键值对插入字典中?)
问题描述
如何在从 YAML 文档加载的 python 字典中的指定位置插入键值对?
How would I insert a key-value pair at a specified location in a python dictionary that was loaded from a YAML document?
例如,如果字典是:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
我希望插入元素 'Phone':'1234'
before 'Age'
和 after 'Name'
例如.我要处理的实际字典非常大(解析的 YAML 文件),因此删除和重新插入可能有点麻烦(我真的不知道).
I wish to insert the element 'Phone':'1234'
before 'Age'
, and after 'Name'
for example. The actual dictionary I shall be working on is quite large (parsed YAML file), so deleting and reinserting might be a bit cumbersome (I don't really know).
如果给我一种插入到 OrderedDict
中指定位置的方法,那也可以.
If I am given a way of inserting into a specified position in an OrderedDict
, that would be okay, too.
推荐答案
关于python <3.7(或 cpython <3.6),您无法控制标准字典中对的顺序.
On python < 3.7 (or cpython < 3.6), you cannot control the ordering of pairs in a standard dictionary.
如果您打算经常执行任意插入,我的建议是使用列表来存储键,并使用字典来存储值.
If you plan on performing arbitrary insertions often, my suggestion would be to use a list to store keys, and a dict to store values.
mykeys = ['Name', 'Age', 'Class']
mydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # order doesn't matter
k, v = 'Phone', '123-456-7890'
mykeys.insert(mykeys.index('Name')+1, k)
mydict[k] = v
for k in mykeys:
print(f'{k} => {mydict[k]}')
# Name => Zara
# Phone => 123-456-7890
# Age => 7
# Class => First
<小时>
如果您打算使用内容不太可能更改的顺序来初始化字典,则可以使用维护插入顺序的 collections.OrderedDict
结构.
from collections import OrderedDict
data = [('Name', 'Zara'), ('Phone', '1234'), ('Age', 7), ('Class', 'First')]
odict = OrderedDict(data)
odict
# OrderedDict([('Name', 'Zara'),
# ('Phone', '1234'),
# ('Age', 7),
# ('Class', 'First')])
请注意,OrderedDict
不支持在任意位置插入(它只记住键插入字典的顺序).
Note that OrderedDict
does not support insertion at arbitrary positions (it only remembers the order in which keys are inserted into the dictionary).
这篇关于如何在指定位置将键值对插入字典中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在指定位置将键值对插入字典中?


基础教程推荐
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 包装空间模型 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01