У меня есть список, представляющий идентификатор, широту и долготу:
someList['1', '20.80684', '25.36993',
'2', '20.80989', '25.38879', <--- identical to the one below.
'2', '20.80989', '25.38879',
'1', '20.81292', '25.40722',
'2', '20.80989', '25.38879', <--- identical to the ones above.
'2', '20.90453', '25.45430',
'...', '...' , '...]
Я пытаюсь проверить последовательные повторяющиеся позиции для того же идентификатора. То есть если один и тот же идентификатор имеет одинаковые координаты, то я хочу сохранить только последний.
До сих пор я пытался сделать следующее:
counterList = [0,1,2,3,4,5]
counter = np.array(counterList)
newList = []
# While the sixth element is less than the length of someList
while counter[5] < len(someList):
if (someList[counter[0]] == someList[counter[3]] and
someList[counter[1]] == someList[counter[4]] and
someList[counter[2]] == someList[counter[5]]):
counter +=3
else:
newList.extend( someList[counter[3]],
someList[counter[4]],
someList[counter[5]]
)
counter +=3
Моя идея состояла в том, чтобы пройтись по списку и посмотреть, был ли FirstID равен
Second ID и FirstLat был равен SecondLat, а FirstLon был равен SecondLon. Если это так, добавьте 3 к счетчику, чтобы он взял следующий идентификатор, lat и lon, и проигнорировал этот экземпляр. Если они не равны друг другу, я добавлю их в новый список, т. Е. Первое совпадение будет удалено.
Это действительно работает, если идентификаторы и координаты идентичны приведенным ниже. Но это не работает, если другой экземпляр появится позже в списке, как вы, возможно, поняли.
Мой вопрос:
Как я могу убедиться, что последующие появления того же ID / Lat / lon удалят предыдущий? Должен быть более простой способ реализовать это? Я довольно новичок в python и уже потратил много времени на это, поэтому надеюсь, что вы поможете мне с моей проблемой.