Python 使用字典确定4个进程何时同时打开

Python 使用字典确定4个进程何时同时打开,python,algorithm,dictionary,Python,Algorithm,Dictionary,对于我正在编写的脚本,我会收到一本字典,例如: Proc_rundict = {Proc1:[Intervals], Proc2:[intervals], Proc3:[Intervals], Proc4:[intervals]} 我需要确定4个流程何时全部开启,3个流程开启,2个流程开启,然后只有1个流程开启。问题是,时间间隔不是严格一致的,我只是想知道如何尝试解决这个问题 间隔可以类似于: [[2.4565,2.5678],[2.7635,2.8898],...] 对这个问题的任何帮助都

对于我正在编写的脚本,我会收到一本字典,例如:

Proc_rundict = {Proc1:[Intervals], Proc2:[intervals], Proc3:[Intervals], Proc4:[intervals]}
我需要确定4个流程何时全部开启,3个流程开启,2个流程开启,然后只有1个流程开启。问题是,时间间隔不是严格一致的,我只是想知道如何尝试解决这个问题

间隔可以类似于:

[[2.4565,2.5678],[2.7635,2.8898],...]
对这个问题的任何帮助都会有帮助。谢谢

def check_procs(curr_time, proc_dict):
    running = []
    for key, intervals in proc_dict.items():
          for start, end in intervals:
              if start<=curr_time<=end:
                   running.append(key)
                   break
    return running 

这可能就是我要做的…

找到每个开始时间和每个结束时间,对它们进行排序,并将时间划分为这些子间隔。然后,对于每个子间隔,您可以计算有多少进程正在运行

times = []
for proc, intervals in Proc_rundict.items():
    for start, end in intervals:
        times.append(start)
        times.append(end)

sorted_times = sorted(times)
for i in range(1, len(sorted_times):
    start, end = sorted_times[i-1:i]
    running_this_interval = min(check_procs(start, Proc_dict), check_procs(end, Proc_dict))
假设检查程序来自Joran Beasley的答案,复制如下

def check_procs(curr_time, proc_dict):
    running = []
    for key, intervals in proc_dict.items():
        for start, end in intervals:
            if start<=curr_time<=end:
                running.append(key)
                break
    return running

哦,这很有帮助,但是我应该选择什么时间来重复我的字典呢?我一直在考虑进程1中每个间隔的结束,但是我仍然有很多其他进程的间隔,还有一些没有完全包含在proc1间隔中的间隔位