查找 N 对列表中的日期是否重叠

2023-12-27

给定开始时间和开始时间的列表,我想查找该列表是否包含重叠条目:

timesok = [('9:30', '10:00'), ('10:00', '10:30'), ('10:30', '11:00')]

wrongtimes1 = [('9:30', '10:00'), ('9:00', '10:30'), ('10:30', '11:00')]
wrongtimes2=[('9:30', '10:00'), ('10:00', '10:30'), ('9:15', '9:45')]

我从这个非常相似的问题中借用了一些代码测试重叠的日期对 https://stackoverflow.com/questions/9044084/efficient-date-range-overlap-calculation-in-python:

def test_overlap(dt1_st, dt1_end, dt2_st, dt2_end):

    r1 = Range(start=dt1_st, end=dt1_end)
    r2 = Range(start=dt2_st, end=dt2_end)
    latest_start = max(r1.start, r2.start)
    earliest_end = min(r1.end, r2.end)
    overlap = (earliest_end - latest_start)
    return overlap.seconds

我测试条目列表的函数:

def find_overlaps(times):
    pairs = list(combinations(times, 2))
    print pairs
    for pair in pairs:
        start1 = dt.strptime(pair[0][0], '%H:%M')
        end1 = dt.strptime(pair[0][1], '%H:%M')
        start2 = dt.strptime(pair[1][0], '%H:%M')
        end2 = dt.strptime(pair[1][1], '%H:%M')
        yield test_overlap(start1, end1, start2, end2) > 0

使用时,其工作原理如下:

In [257]: list(find_overlaps(timesok))
[(('9:30', '10:00'), ('10:00', '10:30')), (('9:30', '10:00'), ('10:30', '11:00')), (('10:00', '10:30'), ('10:30', '11:00'))]
Out[257]: [False, False, False]

In [258]: list(find_overlaps(wrongtimes1))
[(('9:30', '10:00'), ('9:00', '10:30')), (('9:30', '10:00'), ('10:30', '11:00')), (('9:00', '10:30'), ('10:30', '11:00'))]
Out[258]: [True, False, False]

In [261]: list(find_overlaps(wrongtimes2))
[(('9:30', '10:00'), ('10:00', '10:30')), (('9:30', '10:00'), ('9:15', '9:45')), (('10:00', '10:30'), ('9:15', '9:45'))]
Out[261]: [False, True, False]

However:

  1. 我仍在争论这对于大型列表是否非常有效。
  2. 我想知道是否有人可以提供更好的解决方案?

我建议用这种方法来测试重叠,这是一种查找日期所有交集的方法:

def test_overlap(dt1_st, dt1_end, dt2_st, dt2_end):
    return not (dt1_st < dt2_end and dt1_end >dt2_st)

这涵盖了所有重叠的可能性

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

查找 N 对列表中的日期是否重叠 的相关文章

  • 底图上的子图

    我有一张英国地图和 121 个地点 每个地点有 3 个值 我想绘制 121 个位置中每个位置的三个值的小条形图 目前 这些值绘制为markersize属性 看起来像这样 密集恐惧症情节 https i stack imgur com 5fv
  • Python 遍历目录树的方法是什么?

    我觉得分配文件和文件夹并执行 item 部分有点黑客 有什么建议么 我正在使用Python 3 2 from os import from os path import def dir contents path contents list
  • Python 中的安全解除引用

    Groovy 有一个很好的安全取消引用运算符 这有助于避免 NullPointerExceptions variable method The method仅当以下情况时才会被调用variable is not null 有没有办法在 Py
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • 为什么导入 pdb 时出现此错误? “模块”对象没有属性“ascii_letters”

    尝试调试我的代码 我正在导入库pdb import sys from subprocess import check call import pdb functions if name main Code 我收到此错误 File reg p
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • 如何找到列表S的所有分区为k个子集(可以为空)?

    我有一个唯一元素列表 比方说 1 2 我想将其拆分为 k 2 个子列表 现在我想要所有可能的子列表 1 2 1 2 2 1 1 2 我想分成 1 1 2 我怎样才能用 Python 3 做到这一点 更新 我的目标是获取 N 个唯一数字列表的
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • 如何使用循环将十进制转换为二进制?

    我想编写一个程序 将十进制数 0 到 9 转换为二进制数 我可以编写如何使用重复除法将十进制数转换为二进制数的代码 但是 我在创建一个以二进制格式打印十进制数字 0 到 9 的循环时遇到了麻烦 这是我的代码 number 0 remaind
  • 杂乱的扭曲连接在不干净的时尚中消失了。没有代理。已经尝试过标题

    我正在尝试抓取这个网站 https www5 apply2jobs com jupitermed ProfExt index cfm fuseaction mExternal searchJobs https www5 apply2jobs
  • 在 matplotlib 中使用 yscale('log') 时缺少误差线

    在某些情况下 当使用对数刻度时 matplotlib 会错误地显示带有误差条的图 假设这些数据 例如在 pylab 内 s 19 0 20 0 21 0 22 0 24 0 v 36 5 66 814250000000001 130 177
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • 如何检查列表是否为空?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 例如 如果通过以下内容 a 我如何检查是否a是空的 if not a print Lis
  • 如何强制 Y 轴仅使用整数

    我正在使用 matplotlib pyplot 模块绘制直方图 我想知道如何强制 y 轴标签仅显示整数 例如 0 1 2 3 等 而不显示小数 例如 0 0 5 1 1 5 2 等 我正在查看指导说明并怀疑答案就在附近matplotlib
  • 使用Beam IO ReadFromPubSub模块时,可以在Python中提取带有属性的消息吗?尚不清楚是否支持

    尝试将具有存储在 PubSub 中的属性的消息拉取到 Beam 管道中 我想知道是否添加了对 Python 的支持 这就是我无法阅读它们的原因 我看到它存在于Java中 pipeline options PipelineOptions pi
  • 如何向 SCons 构建添加预处理和后处理操作?

    我正在尝试在使用 SCons 构建项目时添加预处理和后处理操作 SConstruct 和 SConscript 文件位于项目的顶部 预处理动作 生成代码 通过调用不同的工具 gt 不知道在此预处理之后将生成的确切文件 可以创建用于决定生成哪
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并
  • SQLAlchemy:避免声明式样式类定义中的重复

    我正在使用 SQLAlchemy 并且我的对象模型中的许多类具有相同的两个属性 id 和 整数和主键 以及名称 字符串 我试图避免在每个类中声明它们 如下所示 class C1 declarative base id Column Inte
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa
  • 在游戏中实现功能

    我在完成这部分作业时遇到了麻烦 我必须宣布游戏的获胜者 然后输入到函数中 输入所有 if 语句后 我必须创建一个函数def playGame 这必须包括 showRules user getUserChoice computer getCo

随机推荐

  • Android Studio 中不支持类型“add-resource”

    我在运行时遇到资源合并问题gradle build命令 日志如下 错误 任务 frameworks base core res res common packageReleaseResources 执行失败 gt 文件中不支持类型 add
  • iPhone 上基于位移贴图的 3D 效果

    我正在尝试制作一个使用置换贴图实现 3D 效果的应用程序 在 Flash 中 可以使用位移过滤器来完成 如下所示 http flashflex com pixel bender displacement map fakes 3d effec
  • JPA 多个嵌入字段

    JPA实体类是否可以包含两个嵌入的 Embedded 字段 一个例子是 Entity public class Person Embedded public Address home Embedded public Address work
  • 在 Visual Studio 2017 中生成 .NET Core 控制台应用程序 .exe

    我使用的是 Visual Studio 2017 我启动了一个小型控制台应用程序 我创建了一个 NET Core 应用程序 然后我想构建 exe 文件 但我得到的只是 dll 文件 没有任何 exe 文件 你能帮我吗 我需要在 Visual
  • Mysql从二进制日志读取数据时从master出错1236

    我有 2 个具有主 从配置的 MySql 并且复制失败 MySql Master崩溃了 新的寄存器在mysql bin index被创建 我删除了这个新的寄存器 因为文件系统中不存在该文件 然后MySql Master重启成功 现在 我在从
  • 使 Jackson 子类型可扩展,无需编辑超类型 java 文件

    在我的公司 我们有一个固定的 JSON 消息结构 headerVal1 headerVal2 customPayload payloadType 我想要某种库 它允许我不关心公司定义的消息结构 而只是发送和接收有效负载 我的想法是 将公司模
  • Java如何在Intellij中找到spark、Hadoop和AWS jar

    我正在 Java 中的 IntelliJ 上运行 Spark 应用程序 我已在 pom xml 中添加了 Spark Hadoop 和 AWS 依赖项 但不知何故 AWS 凭证并未加载 我得到的确切错误是Caused by com amaz
  • 如何在Asp.net的图像控件中显示数据库中的图像?

    如何在Asp net的图像控件中显示数据库中的图像 我们必须在asp net页面中显示员工的图像及其详细信息 但问题是如何在asp net图像控件上显示图像 因为图像控件通过属性ImageUrl来拍照 请指导 您可以创建一个 HttpHan
  • 单个 lambda、多个 cloudwatch 日志组

    运行 AWS lambda 后 将填充单个 cloudwatch 日志组 有没有一种方法可以从单个 AWS lambda 填充两个 不同的 cloudwatch 日志组 我搜索了一下但找不到答案 让我知道是否可能 无法从单个 lambda
  • NoReverseMatch at / Reverse for 'post_detail' 未找到关键字参数 '{'pk': ''}'

    我一直在尝试让这个应用程序工作 我运行 python manage py runserver 一切都很好 我能够看到该网站 以超级用户身份登录 发表评论 但是在尝试查看帖子时我开始收到错误 现在 如果我只是访问该网站 就会收到错误消息 我收
  • Javascript/jQuery onclick 不起作用

    我制作了一个 test html 文档来测试脚本 不知怎的 它不起作用 我不明白为什么什么也没有发生 脚本位于 tags 中并用 tag 包裹 CSS 也有它的 tags 为什么它不起作用 这是代码
  • Html 敏捷包帮助

    我正在尝试从网站上抓取一些信息 但找不到适合我的解决方案 我在互联网上读到的每一个代码都会至少产生一个错误 即使他们主页上的示例代码也会给我带来错误 My code HtmlDocument doc new HtmlDocument doc
  • 我可以使 Dialogflow 意图至少需要一个经过训练的实体吗?

    我知道如何使意图需要任何参数值 之后意图将强制获取该值 但有可能让它强制得到atleast给定实体参数之一 您可以为该意图启用 Webhook 实现 如果未提供实体 则重新提示用户至少提供一组实体之一
  • 静态与 Malloc

    与使用 malloc 相比 块作用域中的 static 关键字有什么优势 例如 功能A f static int x 7 功能B f int x malloc sizeof int if x NULL x 7 如果我理解正确的话 这两个程序
  • symfony 5 - 事件未被调度

    当我提交订单时 我使用事件订阅者来处理一些操作 问题是我的事件没有被调度 但是 symfony 能够找到他 因为他告诉我我的 OrderEvent ORDER CREATE 是孤立的 我预计执行会停止die Hello you from s
  • maven项目中的getClass().getResourceAsStream()

    我的 Maven 项目的 pom xml 如下所示
  • BigDecimal stripTrailingZeros 不适用于零

    我的代码中遇到了奇怪的错误 它与 new BigDecimal 1 2300 stripTrailingZeros returns 1 23 正确的 但 new BigDecimal 0 0000 stripTrailingZeros re
  • clojure/ClojureScript 中的字符串化/解析 edn

    在 JavaScript 中 我们可以通过以下方式将 js 数据结构转换为 JSON 字符串 JSON stringify somedata somesubdata 在其他地方 我们可以通过以下方式将其再次解析为 JS 数据结构 var m
  • EditText 的 requestFocus() 不适用于运行 android P (API 28) 的设备

    我在用EditText s接受 OTP 用户重点关注下一步EditText一旦他在字段中输入数字 等等 它在所有设备上都能正常工作 但在运行 android OS P 即 API 28 的设备上 requestFocus 不起作用 并且用户
  • 查找 N 对列表中的日期是否重叠

    给定开始时间和开始时间的列表 我想查找该列表是否包含重叠条目 timesok 9 30 10 00 10 00 10 30 10 30 11 00 wrongtimes1 9 30 10 00 9 00 10 30 10 30 11 00