我一直在努力思考很久,但无法解决这个问题。考虑以下随时间推移的序列,其记录开关的状态:当所有的序列满足一定的标准时计算时间交集?
A = [(10:00,1),(11:00,0),(12:00,1),(12:30, 0),...,(23:00,1)]#开关A在10:00开启,在11:00关闭等等
B = [(10:30,1),(11 :15,0),(11:30,1),(12:15,0),...,(23:30,0)]#同样
C = ...
(实际上时间的格式是python的time.struct_time。)
所以基本上这个结构会be [(time1,status1),(time2,status2)...]。列表包含24小时内的数据,并且只记录切换实例(因此相邻的“状态”总是彼此相反)。我想计算所有开关A,B,C都打开时的总时间。这个看似简单的问题让我花了很多时间想出一些有用的东西。请分享你的一些智慧!
但字面上写入条件“a_on和b_on和c_on”不起作用,因为即使a,b,c全部打开,也不一定满足,因为存储的时间是离散的。 – agriprop 2012-04-02 12:37:21
好的,我在这里看到你的观点。我应该想到这个!谢谢 – agriprop 2012-04-02 12:39:56
您可以通过实现一个函数来简化这个过程,该函数将输入两个切换时间轴并返回一个时间轴。这样你可以扩展这个功能来处理任何数量的开关。 – GeneralBecos 2012-04-02 16:23:26