提取第二层嵌套字典中的所有键

2023-12-24

我想提取 2d 字典第二级中的所有键,但 python 解释器返回 NameError。我的预期结果是 ['aa', 'bb', 'cc', 'aaa', 'bbb', 'ccc']

>>> adict
defaultdict(<class 'dict'>, {'b': {'aaa': 444, 'ccc': 666, 'bbb': 555}, 'a': {'aa': 111, 'cc': 333, 'bb': 222}})

>>> all = [ele for ele in adict[ww].keys() for ww in ['a', 'b']]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ww' is not defined

你很接近了。您只需要重新排序循环:

all = [ele for ww in ['a', 'b'] for ele in adict[ww] ]

要理解原因,请考虑如何编写正常的for loop:

all = []
for ww in ['a', 'b']:
    for ele in adict[ww]:
        all.append(ele)

请注意,循环的顺序保持不变。另外,我已经放弃了.keys(),这是没有必要的,因为迭代dict默认情况下发生在按键上。


你也可以像乔恩·克莱门茨一样出色 https://stackoverflow.com/questions/45652155/how-to-extract-all-keys-in-second-level-of-2d-dictionary/45652179?noredirect=1#comment78262729_45652179并执行以下操作:

In [265]: set().union(*adict.values())
Out[265]: {'aa', 'aaa', 'bb', 'bbb', 'cc', 'ccc'}

*adict.values()返回内部字典的列表,其键被解包然后添加到集合中。一些提示:

  1. 不保证顺序(即使在 python3.6 上)

  2. 重复项被删除

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

提取第二层嵌套字典中的所有键 的相关文章

随机推荐

  • Angular 和 Elasticsearch 的示例

    我正在寻找 AngularJS 和 Elasticsearch 使用新的官方客户端库协同工作的工作示例 elasticsearch angular js 发现于http www elasticsearch org blog client f
  • 如何区分javafx中表格行的单击或双击

    我正在尝试在 javafx 中创建一个表 允许用户单击一行以转到一页或双击该行以转到另一页 问题在于应用程序注册了单击事件 但没有等待查看是否有另一个双击 有没有办法让程序等待 看看是否有另一次点击 到目前为止我所拥有的看起来类似于 Tab
  • sklearn 和大型数据集

    我有一个 22 GB 的数据集 我想在我的笔记本电脑上处理它 当然我无法将其加载到内存中 我经常使用 sklearn 但数据集要小得多 在这种情况下 经典方法应该是这样的 只读取部分数据 gt 部分训练你的估计器 gt 删除数据 gt 读取
  • boost::asio 读取处理程序类型要求未满足

    我正在尝试将读取标头处理程序实现为成员函数来处理传入数据 然而在编译过程中我被告知不满足类型要求 我检查了 boost 文档 函数签名似乎没问题 我看不出有什么不同 但是 boost 不接受该处理程序有效 cpp 文件 void tcpcl
  • 将 AngularJS 与 MeteorJS 结合使用

    所以我对这两种技术都相当陌生 我的计划是实施他们用 Backbone 制作的 Peepcode Tunes 项目 https github com philipkobernik backbone tunes https github com
  • Tensorflow:AttributeError:“NoneType”对象没有属性“original_name_scope”

    我正在尝试在谷歌云上的 debian 9 5 拉伸系统上运行一些 python 张量流代码 我正在使用该版本的tensorflow GPU版本 最新版本 并安装了适当的CODA和cuDNN软件 这是我的代码 import tensorflo
  • Android LibVLC 选项不起作用

    我正在使用 LibVLC 处理流 RTSP 我可以在可以查看流的地方使用它 但延迟设置为默认的约 2 秒 在 Ubuntu 桌面上 我可以使用以下选项启动 vlc 以大大改善延迟 vlc vvv rtsp 192 168 2 1 1234
  • 无法在React应用程序中运行puppeteer,找不到模块:编译时无法解析“ws”

    我想知道是否可以在我的 React 应用程序中运行 puppeteer 每当我尝试在我的 React 应用程序中运行 puppeteer 时 我都会收到 找不到模块 无法解析 ws 我已经尝试安装 ws 但仍然会出现相同的错误 简单的答案
  • XML 架构 (XSD) 中 xsd:union 的用途是什么?

    我出于某种目的正在解析 XSD 但面临一些 XSD 节点的问题 XSD 中 union 的用途是什么以及为什么使用它 它是否用于对 XML 施加某种限制 我正在附加联合和简单类型节点 请解释一下为什么使用它
  • 条形图中每个条形上的叠加线是什么?

    我正在尝试通过数据可视化来学习自己 当我浏览条形图时 我遇到了以下问题 在图表中 条形字符中的每个条形上都有一条垂直的黑线 那条覆盖的黑线到底意味着什么 感谢您的帮助 这个看起来像垂直的误差线 https en wikipedia org
  • 做 Laravel 教程,得到“未找到基表或视图:1146 表‘sdbd_todo.migrations’不存在”

    工作通过本教程 https www flynsarmy com 2013 12 creating a basic todo application with laravel 4 part 1 我执行以下步骤 您现在应该可以根据需要多次调用
  • 您可以从 p:ajax 侦听器更新 h:outputLabel 吗?

    我尝试使用 p ajax 标签 然后在该侦听器中设置一个名为 periodRendered 的值 然后我尝试通过 p ajax 标签的更新来更新 h outputLabel 标签 它没有更新 ajaxily 我认为这是因为 primefac
  • 按钮 ControlTemplate 和圆角

    我有一个按钮控制模板 我想制作带有圆角的按钮 我该怎么做 我尝试使用 CornerRadius 作为边框中的按钮 但它不起作用 按钮的背景已设置为具有角边框的图像 并且按钮看起来很尴尬 因为我无法设置按钮的角 请尝试以下操作
  • Flexbox的align-self属性没有转换?

    我尝试创建一个吗啡 按钮 它可以在另一个菜单上滑动 这个想法是基于 Codrops变形按钮概念 http tympanus net Development ButtonComponentMorph index5 html 现在已经差不多设置
  • 结构体中变量名前的点是什么意思?

    查看linux内核源代码 我发现了这一点 static struct tty operations serial ops open tiny open close tiny close write tiny write write room
  • Python 中循环链表的帮助

    我正在尝试制作一个循环单链表 我希望能够修改我的代码以获得单一喜欢的列表 但我遇到了一些麻烦 对于我的链接列表 我有 class Link object def init self data next None self data data
  • 在运行时获取 RecyclerView 子视图的高度

    我正在尝试制作一个可扩展的 TextView 当用户按下按钮时它会展开 折叠 TextView 和 ImageButton 位于 CardView 中 该 CardView 添加到 RecyclerView 中 展开 折叠效果很好 但现在我
  • ViewPager2 崩溃

    我正在将高级导航组件与 BottomNavigationView 一起使用 In one tab我有ViewPager2 当我第一次单击该选项卡时 效果很好 尽管第二次 来吧 该选项卡应用程序不断崩溃 下面是崩溃日志 我怎样才能解决这个问题
  • 按下后退按钮时提示用户

    哪个是询问用户单击后退按钮时是否要退出应用程序的好地方 我考虑过onPause and onStop 但是只要应用程序落后于其他应用程序 这些方法就会触发 更新 应用程序还应该询问用户是否尝试通过按钮 在应用程序本身中 退出应用程序 而不是
  • 提取第二层嵌套字典中的所有键

    我想提取 2d 字典第二级中的所有键 但 python 解释器返回 NameError 我的预期结果是 aa bb cc aaa bbb ccc gt gt gt adict defaultdict