对于我正在编写的脚本,我得到了一个字典,例如:
Proc_rundict = {Proc1:[Intervals], Proc2:[intervals], Proc3:[Intervals], Proc4:[intervals]}
我需要确定何时所有4个进程都打开,其中3个进程打开,其中2个进程打开然后只有1个进程打开。问题是间隔不是严格一致的,我只是不知道如何尝试解决这个问题。
间隔可以是:
[[2.4565,2.5678],[2.7635,2.8898],...]
对这个问题的任何帮助都是有帮助的。谢谢
找到每个开始时间和每个结束时间,对它们进行排序,并将您的时间划分为这些子区间。然后,对于每个子区间,您可以计算有多少进程正在运行。
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))
(假设check_procs来自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
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
我可能会这么做。。。