我有一堆长列表(数百万个元素),其中包含时间值和温度值 (
我想要做的是去除连续成对重复的元素。如果一对温度被连续重复,那么就去除这些重复元素(仅保留一个)。
可能有点晦涩,我将使用
接下来看看
注意:元素
为了尝试解决这个问题,我查找并尝试了很多方法。最接近的解决方案是使用一个
[时间,温度]
)。这些列表看起来像这样:mylist = [[1, 72], [2, 75], [3, 74], [4, 75], [5, 74], [6, 75], [7, 79], [8, 71], [9, 79], [10, 71], [11, 75], [12, 74]]
我想要做的是去除连续成对重复的元素。如果一对温度被连续重复,那么就去除这些重复元素(仅保留一个)。
可能有点晦涩,我将使用
mylist
提供一个例子:
mylist[0]
和mylist[1]
是相邻的一对。同样,mylist[1]
和mylist[2]
也是相邻的一对。接下来看看
mylist
中的温度值。从mylist[0]
到mylist[11]
,温度值为:
72 75 74 75 74 75 79 71 79 71 75 74
在上述温度值中,可以看到一对连续的75 74
和79 71
是重复的。我想要做的是保留一对,并去除重复的内容。所以,我想要的输出结果是:output = [[1, 72], [2, 75], [3, 74], [6, 75], [7, 79], [8, 71], [11, 75], [12, 74]]
注意:元素
[11,75]
和 [12,74]
被保留,因为虽然它们也包含 75 74
模式,但与列表开头不同,它们不是连续重复的。
为了尝试解决这个问题,我查找并尝试了很多方法。最接近的解决方案是使用一个
for
循环创建一个解决方案,在该解决方案中,我将检查一个元素和前一个元素(索引-1),然后我将检查索引-2和索引-3,并且如果它们被确定为具有温度重复,则删除两个元素。然后,我会在向前的方向(index + 1)中重复此操作。这种方法有点起作用,但变得非常混乱,非常慢,并使我的计算机成为一个便携式加热器。所以,我想知道是否有人知道如何有效快速地消除这些连续重复对。