python 基于键匹配合并字典的最快方法

2023-12-01

我有 2 个字典列表。列表 A 长 34,000,列表 B 长 650,000。我本质上是根据键匹配将所有列表 B 字典插入到列表 A 字典中。目前,我正在做显而易见的事情,但这需要很长时间(说真的,就像一天一样)。一定有更快的方法!

for a in listA:
    a['things'] = []
    for b in listB:
        if a['ID'] == b['ID']:
            a['things'].append(b)

from collections import defaultdict
dictB = defaultdict(list)
for b in listB:
    dictB[b['ID']].append(b)

for a in listA:
    a['things'] = []
    for b in dictB[a['ID']]:
        a['things'].append(b)

这会将你的算法从 O(n*m) 变为 O(m)+O(n),其中 n=len(listA), m=len(listB)

基本上,它通过“预先计算”列表中的哪些字典与每个“ID”匹配来避免为 listA 中的每个字典循环遍历列表中的每个字典

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

python 基于键匹配合并字典的最快方法 的相关文章

  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • MSBuild,运行自定义工具来生成 linq to sql 模型类的自定义任务?

    我有以下场景 我们使用存储过程来访问数据库 并使用 LiNQ 2 SQL 来生成类 或者即我们使用 UnpluggedLINQ 到 SQL 生成器为了这 它已作为自定义工具运行 但区分生成的类是一个很大的难题 我们希望自动生成类 但将其排除
  • Eclipse 中通知未处理异常的配置是什么?

    当在 Eclipse 中我使用抛出异常的方法时 如果它没有被 try catch 包围或者没有再次抛出异常 它通常会抱怨 但对于某些例外情况 例如 Integer parseInt string Eclipse 不会抱怨 我如何设置 Ecl
  • ChromeDriver - 尝试使用 javascript 打印页面时超时

    我需要将页面另存为 PDF 但遇到问题 我正在使用 ChromeDriver 仅使用 google 作为示例 因为我的应用程序需要登录 我导航到该页面 google com 然后在 javascript 中执行 window print 以
  • 从另外 2 个表创建百分比表 - Google 查询

    有没有办法计算第三个交叉表 其中包含从 Google 查询创建的 2 个交叉表的百分比 最初 我使用大括号将两个查询堆叠在一起 但发现如果存在行或列不匹配 则两个表查询都会导致 VALUE 错误 因此 将 2 个表分开 它们之间有 100
  • 在 Amazon Elastic Beanstalk 上安装 Anaconda

    我已将部署命令添加到我的 Elastic Beanstalk 部署中 该命令下载 Anaconda 安装程序 并将其安装到 anaconda 一切顺利 但我似乎无法正确修改我的实例的 PATH 以包含 anaconda bin按照 Anac
  • 内容拥抱和内容压缩阻力、自动布局约束的问题

    我已经修改了问题 以提供更多且清晰的信息 我想要一个动态表格视图单元格 具有灵活的 UITextView 高度和可选的 UIImageView 根据 UITextView 和可选的 UIImageView 的内容大小 可以缩小或扩展单元格
  • PDFBox 的内存泄漏问题

    我在用PDF Box version 2 0 9在我的应用程序中 我必须从网络解析大型 pdf 文件 以下是我正在使用的代码 MimeDetector 类 Getter Setter class MimeTypeDetector priva
  • CSS/JS:文本更改时对内联元素进行动画处理

    When an inline元素的文本发生变化 通常情况是它的计算width or height也发生变化 通常这是微不足道的transition属性随 CSS 改变 例如添加transition改变background color悬停时的
  • 在 QTreeView 上的子项上设置小部件

    谢谢这个线程 我可以将小部件添加到第二列或后续列QAbstractItemView 在我的例子中QTreeView 的顶级项目view 但是是否可以向子项添加小部件 这是我尝试过的部分进展顺利的方法 usr bin env python i
  • Android Studio 0.4.3 中的 Gradle 错误

    我在旧版本中找到了对此的引用 但不是最新版本 我将 Android Studio 更新到 0 4 3 并创建了一个新项目 构建立即失败 并显示以下内容 Could not create an instance of Tooling API
  • 更改 YTPlayerView 的播放质量

    我的应用程序中嵌入的 YouTube 视频存在质量问题 我在用YTPlayerView嵌入 YouTube 中的视频 我的应用程序有 2 个选项 选项 1 是用户可以观看 360p 质量的视频 选项 2 是 720p 质量 这两种选择可能吗
  • 从特定日期开始按 7 天间隔对行进行分组

    有没有办法从 Mysql 中的某个日期开始按 7 天间隔 日期时间 对行进行分组 SELECT 1 DATEDIFF columnDate start date DIV 7 AS weekNumber start date INTERVAL
  • WPF Datagrid 双击单元格 MVVM 设计

    我有一个包含数据网格的 WPF 应用程序 它绑定到我的列表对象 订单 如下所示 public class OrderBlock public Settings setting public List
  • 仅复制粘贴值( xlPasteValues )

    我正在尝试将sheetA 中的整个列复制到Sheet B sheetA 列具有用公式形成的值 我仅使用复制 SheetA 列值xl粘贴值 但它不会将值粘贴到另一个sheetB SheetB 中的列为空 我的VBA代码 Public Sub
  • Xcode 10 Beta 6 Playground 中未调用 Deinit 方法

    我正在探索内存管理概念并发现deinit方法没有调用Xcode 10 beta 6 游乐场 最初我认为可能是代码中存在一些问题 然后我在 Xcode 9 4 1 Playground 和 Xcode 10 beta 6 示例应用程序中测试相
  • fetch() 在 Firefox 中使用 SSL 客户端身份验证失败

    我有一个使用 SSL 客户端身份验证的 Web 服务器 该服务器上的网页具有同源性GET请求使用fetch API 在 Chrome 中 客户端证书按照预期在 SSL 握手中发送 从而产生 200 ok 响应 在 Firefox 中 不会发
  • 如何在触摸屏上关闭 Windows 8.1 手势和设置超级按钮栏

    我安装了戴尔触摸屏和 Windows 8 1 单语言 当我将手指从右边缘向中间移动时 Windows 8 将调出设置超级栏 或者当我将手指从中上边缘向下移动时 Windows 8 会隐藏我的应用程序并调出开始菜单 这是一个问题 因为我正在
  • JSON复杂类型,可以是一个对象或对象数组[重复]

    这个问题在这里已经有答案了 我正在尝试处理一个对象 该对象可以是对象数组 也可以只是对象 仅当 naics 是对象而不是数组时 使用下面的代码才有效 我究竟做错了什么 这是我能想到的最短的例子 section 52 219 1 b naic
  • 如何在 Xcode 4.2 上为 IOS 5 创建 UITableView?

    上周我下载了 Xcode 4 2 所以当我开始构建应用程序时 我尝试添加一个UITableView到我的一个项目 就像我开始开发以来一直在做的那样 但是UITableView不工作 我一直在寻找教程 但没有找到任何教程 如何在 Xcode
  • python 基于键匹配合并字典的最快方法

    我有 2 个字典列表 列表 A 长 34 000 列表 B 长 650 000 我本质上是根据键匹配将所有列表 B 字典插入到列表 A 字典中 目前 我正在做显而易见的事情 但这需要很长时间 说真的 就像一天一样 一定有更快的方法 for