如何在指定位置将键值对插入字典中?

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).

这篇关于如何在指定位置将键值对插入字典中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I make a list of all members in a discord server using discord.py?(如何使用 discord.py 列出不和谐服务器中的所有成员?)
how to change discord.py bot activity(如何更改 discord.py 机器人活动)
Issues with getting VoiceChannel.members and Guild.members to return a full list(让 VoiceChannel.members 和 Guild.members 返回完整列表的问题)
Add button components to a message (discord.py)(将按钮组件添加到消息(discord.py))
on_message() and @bot.command issue(on_message() 和@bot.command 问题)
How to edit a message in discord.py(如何在 discord.py 中编辑消息)