【发布时间】:2016-02-26 05:39:45
【问题描述】:
我有这种两种不同的间隔集:
Intervals1:
{'ending_time': '2016-02-26 07:10:40.276504', 'starting_time': '2016-02-26 07:10:39.286168'}
{'ending_time': '2016-02-26 07:10:40.722193', 'starting_time': '2016-02-26 07:10:40.301116'}
{'ending_time': '2016-02-26 07:10:41.329731', 'starting_time': '2016-02-26 07:10:40.812676'}
{'ending_time': '2016-02-26 07:10:42.146669', 'starting_time': '2016-02-26 07:10:41.419473'}
{'ending_time': '2016-02-26 07:10:42.413005', 'starting_time': '2016-02-26 07:10:42.203540'}
{'ending_time': '2016-02-26 07:10:42.686456', 'starting_time': '2016-02-26 07:10:42.442964'}
{'ending_time': '2016-02-26 07:10:43.198191', 'starting_time': '2016-02-26 07:10:42.746994'}
{'ending_time': '2016-02-26 07:10:44.502593', 'starting_time': '2016-02-26 07:10:43.288611'}
{'ending_time': '2016-02-26 07:10:46.525823', 'starting_time': '2016-02-26 07:10:44.709627'}
{'ending_time': '2016-02-26 07:10:47.098280', 'starting_time': '2016-02-26 07:10:46.886541'}
--------------------------
Interval2:
{'ending_time': '2016-02-26 07:10:41.482954', 'starting_time': '2016-02-26 07:10:39.590220'}
{'ending_time': '2016-02-26 07:10:42.615738', 'starting_time': '2016-02-26 07:10:41.649375'}
{'ending_time': '2016-02-26 07:10:46.365902', 'starting_time': '2016-02-26 07:10:45.987907'}
{'ending_time': '2016-02-26 07:10:47.698375', 'starting_time': '2016-02-26 07:10:46.510641'}
我正在使用这一行将这些日期时间字符串转换为真实的日期时间对象:
datetime.datetime.strptime(dictionary['starting_time'], "%Y-%m-%d %H:%M:%S.%f")
我在这里尝试做的是通过比较这两个不同的集合来匹配重叠的时间间隔。
例如; Intervals1[0] 和 Intervals2[0] 重叠 但 Intervals1[7] 和 Intervals2[0] 不重叠。
那么正确的方法是什么?对我来说,一个简短的解释就足够了。
【问题讨论】:
-
这些值是代表日期/时间的字符串似乎无关紧要。如果您使用带有元组的列表,问题将保持不变:
L1 = [(1, 10), (100, 120)]、L2 = [(9, 15), (50, 60)]——这里是L1[0]和L2[0]重叠。相关:Merging Overlapping Intervals 和 Python - Removing overlapping lists。
标签: python python-2.7 datetime time compare