Python 将单个字典项移动(弹出)到新字典中

标签 python

我有一本字典,但不知道键或值。我想删除单个元素(无论哪个元素)并创建一个仅包含该键和值的新字典,并在此过程中将其从旧字典中删除。

dict(n 项) -> newdict(1 项) 和 dict(n-1 项)

我尝试过的:

  1. newdict=dict.pop() - 对于列表来说可以完美工作,但是对于字典来说它 1. 需要一个键并且只返回一个值,而不是一个新的字典或一个键、值对

  2. newdict={dict.items()[0]} - TypeError:“dict_items”对象不可订阅

  3. newdict={dict.keys()[0],dict.pop(dict.keys()[0])} - TypeError:“dict_keys”对象不可订阅

  4. key=list(dict)[0] newdict={key,dict.pop(key)} - 有效(终于),但是这不是比将整个字典转换为列表只是为了获取一个键更好的方法吗?

是否有更有效的方法将单个字典元素移动到新字典中?

编辑:将单个元素作为元组也可以。我只需要删除的元素的键和值。

最佳答案

我认为这是 dict.popitem 的一个很好的用例:

old_dict = {1: 2, 3: 4, 5: 6}
new_dict = {7: 8}

def move_item(old, new):
    k, v = old.popitem()
    new[k] = v

move_item(old_dict, new_dict)
print(old_dict, new_dict)

结果

{1: 2, 3: 4} {7: 8, 5: 6}

关于Python 将单个字典项移动(弹出)到新字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59376554/

相关文章:

python - 用于非/NULL 值的 SQLAlchemy 过滤器 - 工作 - 但如何将它放在列表中?

python - 一维时间序列数据的 Durbin-Watson 统计量

python - 启动 docker-compose : python modules not installed 时出现问题

python - 为什么上传的图像权限取决于其大小?

python - 使用 pyinstaller 为 kivy 应用程序生成单个 exe

python - 在 python 中绘制,在键盘点击时更新

python - 根据 Groupby 函数的输出命名 pandas 数据框

python - 为什么使用 IPython 魔术 %reset 清除变量空间时 pool.join() 会挂起?

带有\w 的 Python 正则表达式不起作用

python - 如何让 docstring 遵守 PEP257,同时可与 docopt 一起使用以使用 gettext 遵守 i18n?