列表的最短和最长的时间间隔,我有时间间隔以分钟为单位列表,如下所示:如何计算在python
lst = [9.7, 16.1, 16.5, 2.3, 0.2, 7.0, 4.8, 24.9, 17.6, 13.8, 12.3,
16.2, 2.4, 8.7, 2.7, 35.5, 0.9, 25.6, 1.2, 17.4, 6.2, 7.8, 27.7, 0.3,
0.9, 37.0, 10.7, 1.4, 65.3, 44.0, 1.8, 8.3, 2.2, 5.6, 14.6, 2.7, 17.9,
0.8, 2.8, 25.4, 7.7, 8.1, 13.6, 9.7, 7.3, 0.5, 19.4, 51.4, 56.1, 16.3]
我试图计算最长和最短等待之间的时间列表lst中的间隔。我试过如下:
size = len(lst)
interval_diff = [lst[i + 1] - lst[i] for i in range(size) if i+1 < size]
print("shortest waiting time:",(min(interval_diff)))
print("longest waiting time:",(max(interval_diff)))
这给了我的结果:
shortest waiting time: -42.2
longest waiting time: 63.9
的问题是,我能够正确计算最长等待时间,但等待时间最短是给我-42.2时间不能是负面的。如果我尝试使用绝对值,它会给我积极的42.2,这不是最短的等待时间,如果我们比较列表中的每个时间间隔和下一个时间间隔。我无法对列表进行排序,因为它需要按现在的时间间隔排列。有没有人有任何想法,我怎样才能获得列表中最短的等待时间?在这种情况下,我猜它应该是2.3-0.2这是2.1?任何帮助将不胜感激。
但'0.2'是后'2.3',和你'重新计算'0.2 - 2.3'而不是'2.3 - 0.2'。而'0.4.5'的'16.5 - 16.1'小于'2.1'。 –
@MrGeek你是对的,对不起我以2.3 - 0.2为例。最短的等待时间是16.5 - 16.1,即0.4。 –