动态设置字典深处的值

2024-01-04

如果我有一个嵌套字典d = {'a':{'b':{}}}和一个字符串'a.b.c'和一个值'X'

我需要根据键字符串将值放入字典中。

我想要实现的目标可以硬编码为d['a']['b']['c'] = 'X'但我需要动态地做到这一点。密钥字符串可以是任意长度。

对于奖励积分:如果密钥不存在,我还需要创建密钥'a.b.z'但我确信如果我能解决它们已经存在的情况,我就能弄清楚。


def set(d, key, value):
    dd = d
    keys = key.split('.')
    latest = keys.pop()
    for k in keys:
        dd = dd.setdefault(k, {})
    dd.setdefault(latest, value)

d = {}
set(d, 'a.b.c', 'X')
set(d, 'a.b.d', 'Y')
print(d)

Result:

{'a': {'b': {'c': 'X', 'd': 'Y'}}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态设置字典深处的值 的相关文章

随机推荐

  • 在Raspberry Pi上使用Selenium和Python登录zoom时出现错误401

    我正在学习使用 Selenium 我的目标是通过 Raspberry Pi 4 上的 python 程序打开 Zoom 运行粘贴的代码后 该程序按预期工作 打开放大浏览器 最大化窗口 选择并单击 登录 输入凭据 然后按 Enter 键 尝试
  • PARSE_DATETIME 格式化为一年中的某一天

    BigQuery 中与年份 j 格式设置元素一起使用的 PARSE DATETIME 函数存在问题 该函数似乎忽略了一年中的某一天元素 Eg select PARSE DATETIME Y j 2013243 returns 2013 01
  • PayPal API,寻找合适的 API

    我需要在我的网站中添加使用 PayPal 付款的选项 我想要一个 API 我可以在其中向 PayPal 发送信息并立即取回交易 ID 以便我可以将其保存在我的数据库中 哪种 API 最适合我 有没有办法做到这一点 我看到他们有这个清单 li
  • 使用 virtualenv 时在 pythonpath 中包含 Git 子模块

    我正在使用 Git 对 Django 项目进行版本控制 尽可能将所有不属于项目本身但项目所依赖的源代码作为 Git 子模块引入 这些生活在lib目录并且必须包含在 python 路径中 目录 文件布局如下所示 git docs lib my
  • Swift:如何使 UIView 在 UITableViewCell 中可点击?

    里面一个UITableViewCell 我正在尝试实现一个button与两个image and a text 看来是标准UIButton无法实现这一点 所以我创建了一个UIView其中包含一个UIImageView and a UILabe
  • 嵌入式 C++ 系统中的持续集成/单元测试

    通常使用哪些工具进行单元测试 尤其是嵌入式系统的持续集成 我特别认为你通常必须交叉编译和部署 而且你不能轻松地可视化目标平台 运行测试代码和框架也可能很困难 我可以用什么来缓解这些困难呢 我认为它应该是某种双重目标 构建服务器在更容易的目标
  • 重写 onSaveInstanceState

    我正在努力应对onSaveInstanceState类中的方法View https developer android com reference android view View html onSaveInstanceState 28
  • Apache Spark 的性能调优

    我正在开发一个项目 我必须调整 Spark 的性能 我发现了四个最重要的参数 它们将有助于调整 Spark 的性能 它们如下 火花记忆分数 Spark 内存 offHeap 大小 Spark Storage MemoryFraction S
  • Entity Framework Core 将不会映射到 BigInteger

    我需要使用BigInteger类来处理我的类的大整数 但是当尝试使用 Entity Framework Core 映射到数据库表时 我收到以下错误 该物业AllianceRank Reputation无法映射 因为 它是类型BigInteg
  • app-release.apk 是 zipaligned apk 吗?

    我使用的是Android Studio 1 0 2 当我在gradle任务中单击assembleRelease时 会生成两个文件 app release unaligned apk和app release apk 我知道 app relea
  • 使用 python 进行 SICP 的材料?

    我想用 Python 尝试 SICP 任何人都可以指出教授计算机程序的结构和解释的材料 视频 文章 python 目前正在学习 Abelson Sussman 和 Sussman 的 SICP 视频 我想这对你来说会很棒CS61A SICP
  • 尝试从应用内发送电子邮件但不起作用 - Swift (iOS)

    我尝试了来自不同网站的 2 个代码从我的 iOS 应用程序发送电子邮件 当我按下Send按钮它调用方法邮件撰写控制器并且总是返回日志 邮件已发送 作为result参数总是MFMailComposeResultSent value 即使我有
  • 管道中何时进行路由?

    ASP NET MVC 管道中何时进行路由 IIS 7 0 的 ASP NET 应用程序生命周期概述 http msdn microsoft com en us library bb470252 aspx 是否在第 2 步 执行 URL 映
  • TinyMCE初始化后修改工具栏的正确方法

    我正在使用 JavaScript 扩展云托管的 LMS 因此 我们可以在页面中添加javascript 但不能针对不同的组件修改供应商的javascript LMS 经常使用tinyMCE 目标是在每个tinyMCE编辑器的工具栏上添加一个
  • 通过向包装器传递 R 中的一组参数来生成 N 个 ggplot 图?

    我有一个输出数据框的函数 如下所示 df A tibble 100 x 7 test idx train user id test user id train idx D isSame D rank
  • 如何修复 PHP 警告:PHP 启动:无法加载动态库 'ext\\php_curl.dll'?

    我目前在 Windows Server 2008 R2 上安装了 PHP 5 5 12 和 Apache 2 4 一切都运行完美 没有问题 警告 我所做的是将相同的 Apache 文件 配置复制到另一台服务器 我复制了C PHP目录 然后是
  • 正则表达式在文本中查找 url

    我必须使用正则表达式找到文本中的第一个网址 例如 I love this website http www youtube com music it s fantastic or es http www youtube com music
  • 具有可变数量的特定类型参数的 C++ 函数

    我刚刚了解了 C 中的可变参数模板 我实现了它 但我想知道它可以执行以下操作吗 如果我想要一个参数数量可变的函数 我可以这样做 template
  • 如何在React函数组件中不使用useEffect钩子来获取数据?

    我知道使用钩子时的传统方法是使用useEffect钩 但是为什么我不能直接在功能组件中调用axios而不是hook然后设置数据呢 基本上 我想问这样做有什么问题 const users setUsers useState null axio
  • 动态设置字典深处的值

    如果我有一个嵌套字典d a b 和一个字符串 a b c 和一个值 X 我需要根据键字符串将值放入字典中 我想要实现的目标可以硬编码为d a b c X 但我需要动态地做到这一点 密钥字符串可以是任意长度 对于奖励积分 如果密钥不存在 我还