Python中确定两个范围中的哪些值重叠的最佳方法是什么?
例如:
x = range(1,10)
y = range(8,20)
(The answer I am looking for would be the integers 8 and 9.)
给定一个范围x,迭代另一个范围y并输出两个范围共享的所有值的最佳方法是什么?先谢谢您的帮助。
编辑:
作为后续,我意识到我还需要知道x是否与y重叠。我正在寻找一种方法来遍历范围列表,并做一些范围重叠的其他事情。是否有简单的True /
False语句来完成此操作?
尝试设置交集:
>>> x = range(1,10)
>>> y = range(8,20)
>>> xs = set(x)
>>> xs.intersection(y)
set([8, 9])
请注意,intersection
接受任何可迭代的参数作为参数(y
不需要将其转换为该操作的 集合
)。有一个等效于该intersection
方法的运算符:&
但是,在这种情况下,它需要将两个参数都设置为set。
问题内容: 我试图找到一种基于特定列(id)在数据框中查找重叠数据范围(每行提供的开始/结束日期)的更有效方法。 数据框在“来自”列上排序 我认为有一种方法可以像我一样避免“双重”应用功能… 我使用“应用”功能在所有组上循环,并且在每个组中,每行使用“应用”: 问题答案: 您可以移动列并直接减去日期时间。 分组时应用它可能看起来像 演示版
问题内容: 假设您有一个包含标识符,开始时间和结束时间的表。这些开始和结束时间可以是任何时间长度。开始时间总是早于结束时间。假设没有空值。 哪种查询会告诉我最“受欢迎”的时间,即每行中的两个范围与其他大多数行重叠的地方? 现实生活中的应用是,它是一个记录用户登录和注销时间的表格。我想编写一个查询,该查询将告诉我何时有最多并发用户登录,并查看这段时间。 谢谢你。 问题答案: 这是使用简单自连接和a的
假设我有一个范围(section)和一个额外的要排除的范围列表,由元组(start,end)表示: 我正在寻找一种有效的算法,从这两个输入中返回一个新的范围列表,如: 这是引出第二个范围列表的主范围。 谢啦! 编辑: 实际上,deceze关于使用intervaltree的建议似乎很有趣。有几行: 显然,间隔被视为已关闭,但这是一个小问题。
我正在用java编写一些代码,它检查一个由51个对象组成的数组,名为,这些对象是从右向左移动到x:200px位置的播放器的圆圈。我想使它这样,玩家被判分或扣分的基础上,他们的按钮按下的时间与一个节拍的位置相比,到目前为止,我有以下几个: 这种方法会导致几个问题,因为范围重叠,以此类推,按下按钮通常会输出如下内容: 然而,我希望它一次只检查一个位置,例如最靠近播放器的位置,或者是迭代器,用于检查数组
问题内容: 我最近开始学习python3。 在 python 2 中,可以使用函数来分配列表元素。 如使用功能时在 python 3 中一样 为什么会这样呢? python为什么要进行此更改? 是恩赐还是祸根? 问题答案: Python 3 在很多地方使用了 迭代器 ,而 python 2 使用了 列表 。文档给出了详细的解释,包括对的更改。 优点是,如果您使用大范围的迭代器或映射, Python
问题内容: 我在函数内有以下代码: 添加元素可以正常工作,但是我不能在第二个子功能中增加: UnboundLocalError:分配前已引用局部变量“ num_converted” 我可以使用,但是全局变量很丑陋,我真的不需要该变量是全局变量。 因此,我很好奇如何在父函数范围内写入变量。 可能会完成这项工作,但是我需要一个与Python 2.x兼容的解决方案。 问题答案: 问题: 这是因为Pyth