确保列表中的所有字典都具有相同的键

2024-02-13

我有一个包含字典的列表,例如

[{'x': 42}, {'x': 23, 'y': 5}]

并希望确保所有字典具有相同的键,其值为None如果原始字典中不存在该密钥。所以上面的列表应该变成

[{'x': 42, 'y': None}, {'x': 23, 'y': 5}]

最美丽、最Python式的方法是什么?目前的方法:

keys = reduce(lambda k, l: k.union(set(l)), [d.keys() for d in my_list], set())
new_list = [dict.fromkeys(keys, None) for i in xrange(len(my_list))]
for i, l in enumerate(my_list):
    new_list[i].update(l)

但尤其是前两行似乎有点笨拙。有想法吗?


>>> from itertools import chain 
>>> l = [{'x': 42}, {'x': 23, 'y': 5}]
>>> all_keys = set(chain.from_iterable(l))   
>>> for d in l:
        d.update((k,None) for k in all_keys-d.viewkeys())


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

确保列表中的所有字典都具有相同的键 的相关文章

  • 为什么我的混淆矩阵只返回一个数字?

    我正在做二元分类 每当我的预测等于事实时 我发现sklearn metrics confusion matrix返回单个值 难道没有问题吗 from sklearn metrics import confusion matrix print
  • Tkinter 菜单删除项

    如何删除任何菜单项 例如我想删除 播放 self menubar Menu self root self root config menu self menubar self filemenu2 Menu self menubar self
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • 使用 Pytest 的参数化添加测试功能的描述

    当其中一个测试失败时 可以在测试正在测试的内容的参数化中添加描述 快速了解测试失败的原因 有时您不知道测试失败的原因 您必须查看代码 通过每个测试的描述 您就可以知道 例如 pytest mark parametrize num1 num2
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • python celery -A 的无效值无法加载应用程序

    我有一个以下项目目录 azima init py main py tasks py task py from main import app app task def add x y return x y app task def mul
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • Python MySQL 操作错误:1045,“用户 root@'localhost' 的访问被拒绝

    我试图通过以下方式从我的 python 程序访问数据库 db mysql connect host localhost user Max passwd maxkim db TESTDB cursor db cursor 但是 我在第一行代码
  • 更改QLineEdit的ClearButton图标

    我想在Windows 10 1909 64位 上的Python 3 8和PyQt5 5 15 0 上更改我的QLineEdit的ClearButton图标 稍后我想在Linux上运行代码 我尝试应用此处找到的代码 如何在 QLineEdit
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • 为什么在Python解释器中输入_会返回True? [复制]

    这个问题在这里已经有答案了 我的翻译行为非常奇怪 gt gt gt True gt gt gt type True
  • 使用seaborn绘制简单线图

    我正在尝试使用seaborn python 绘制ROC曲线 对于 matplotlib 我只需使用该函数plot plt plot one minus specificity sensitivity bs where one minus s
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说
  • 确定分割形状几何体的“左”侧和“右”侧

    我的问题是 我怎样才能确定哪一个Aside and Bside的侧面已经分割的旋转矩形几何体 http nbviewer jupyter org urls dl dropbox com s ll3mchnx0jwzjnf determine
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • 如何在 scikit 中加载 CSV 数据并将其用于朴素贝叶斯分类

    尝试加载自定义数据以在 Scikit 中执行 NB 分类 需要帮助将示例数据加载到 Scikit 中 然后执行 NB 如何加载目标的分类值 使用相同的数据进行训练和测试 或使用完整的数据集进行测试 Sl No Member ID Membe
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典

随机推荐

  • 在 UIPageViewController 中预加载下一页

    我已经看过很多很多地方 但还没有找到一些好的示例代码来展示如何在 UIPageViewController 中预加载 下一个 页面 关于 SO 有一些答案 详细介绍了一些理论上的方法 请参阅这个问题 https stackoverflow
  • Camera 和 SurfaceView 的奇怪行为

    我对 SurfaceView 的使用感到疯狂 我开发了一个以固定时间间隔拍照的应用程序 它与我的 Androd 2 3 设备配合良好 这是示例代码 public class MainActivity extends Activity pri
  • 在android studio中设置不同的语言

    我是 Android Studio 的新手 我正在尝试通过雅虎天气服务 JSON 数据制作我的简单应用程序天气信息 我想在我的应用程序中显示不同的语言 例如英语和阿拉伯语正在处理 string xml 并翻译一些主要活动中的单词 我尝试将条
  • RxJava 对列表执行操作并返回可观察值

    我是 RxJava 特别是 RxJava2 的新手 并且在看似相对简单的操作中遇到了一些麻烦 我需要从数据库获取一些数据 迭代数据 它表示为列表 对每个项目执行操作 将数据包装在另一个对象中并返回 这是我到目前为止所拥有的 mDataMan
  • 如何使用安卓exoplayer

    我正在寻求实施 Google 的ExoPlayer在我的应用程序中 他们的文档对我来说似乎相当模糊 我所寻找的只是从 URL 播放视频 没有复杂的自定义设置或类似的东西 尚未找到任何有关如何操作的教程 他们在 git 上提供的示例对于我的需
  • AVAudioEngine() 播放不工作

    我正在尝试使用改变声音的音调AVAudioEngine 在斯威夫特 这是我的代码 func setUpEngine let fileString NSBundle mainBundle pathForResource 400 ofType
  • C命令行密码输入

    我想允许用户使用命令行界面输入密码 但我不想在屏幕上显示此密码 或显示 在C语言中如何实现呢 谢谢 Update 我只在 Linux 上工作 所以我其实并不关心Win或者其他系统 我尝试了卢卡斯的解决方案 效果很好 不过 我还有一个问题 如
  • Java新线程需要内存

    我有一个大量创建线程的应用程序 结果我得到了内存不足错误 我的想法是等到有足够的可用空间来创建下一个Thread 但因此我需要知道创建一个线程需要多少内存以及这个内存量是否可用 有没有办法获取线程所需的内存量 我怎样才能确定这个内存量是否可
  • 为什么 UIButton 框架被 setTitle: forState: 方法重置

    问题如下 在某个时刻 按钮的位置发生了变化 此后 按钮的标题也必须更改 位置通过动画 UIView 动画块 更改 并且当设置标题时 帧返回到原始值 动画之前 那么 我该如何解决这个问题 为什么会发生这种情况 用代码更新 CGRect but
  • 如果客户端禁用了 Javascript,我该怎么办?

    我的网站严重依赖 Javascript 如果我将其关闭 我的网站就会看起来非常丑陋 我想通过向用户显示打开它的通知来强制用户使用 Javascript 否则提示他该网站无法查看 我该怎么做才能实现这一目标 看看这里 无脚本标签 http w
  • Android 设备可以同时在外围模式和中央模式下运行蓝牙 LE 吗?

    是否可以在运行外设和中央模式的 Android 设备中安装 LE 蓝牙 同时用于广告和收听 是的 您绝对可以作为外设并同时连接其他外设 对此的限制之一是设备限制 请下载BLE 中央 外设检查器请确保您的设备支持 BLE 外设 BLE 中央或
  • WinAPI:如何在自定义编辑控件中处理键盘输入

    因此 我使用 Windows API 在 C 中创建自己的编辑控件 多行文本框 一切进展顺利 但我对一件事有点困惑 首先 该控件被构建为能够处理 unicode 并且所有输入都将转换为 unicode 换句话说 所有输入都将存储为wchar
  • 如何在JavaEE中响应后执行代码

    我尝试找到一种在响应后运行代码的方法 但没有成功 就我而言 服务器向我发送数据以便让我完成工作 但此操作可能会很长 例如 向 5000 个联系人发送短信并检查谁收到了它 服务器期望立即收到 HTTP 204 No Content 响应 以确
  • 在 if/else 中使用 Promise

    我有一个条件语句 其中我需要执行两个操作之一 然后在任一操作解决后继续 所以我的代码目前如下所示 if shoud do thing a should do thing a is just a variable that determine
  • 从 Arraylist 中获取恰好出现 3 次的字符串

    我有一个ArrayList其中包含一些重复的值和出现三次的元素 我想将那些出现三次的值专门收集到另一个中ArrayList like Arraylist
  • 如何通过递减来拉伸 numpy 数组的特定项?

    给定边界值k 有没有一种矢量化的方式来替换每个数字n连续递减的数字从n 1 to k 例如 如果k是 0 我想更换np array 3 4 2 2 1 3 1 with np array 2 1 0 3 2 1 0 1 0 1 0 0 2
  • WTForms 不验证 - 没有错误

    我在使用 WTForms 库时遇到了一个奇怪的问题 为了进行测试 我创建了一个包含单个字段的表单 class ArticleForm Form content TextField Content 它接收一个简单的字符串作为内容 现在我使用f
  • 如何找出应用程序崩溃的原因 - Windows 10 LTSB

    我有使用 VS 2017 15 7 4 构建的应用程序 它是 64 位命令行 C 应用程序 我已将其与所有依赖项 DLL 一起复制到使用 Windows 10 Enterprise 2016 LTSB 64 位 版本为版本 10 0 143
  • @Published 属性包装器不适用于 ObservableObject 的子类

    我有一个符合 ObservableObject 协议的类 并使用它自己的变量和 Published 属性包装器创建了一个子类来管理状态 使用子类时 published 属性包装器似乎被忽略 有谁知道这是否是预期行为以及是否有解决方法 我正在
  • 确保列表中的所有字典都具有相同的键

    我有一个包含字典的列表 例如 x 42 x 23 y 5 并希望确保所有字典具有相同的键 其值为None如果原始字典中不存在该密钥 所以上面的列表应该变成 x 42 y None x 23 y 5 最美丽 最Python式的方法是什么 目前