我有一个代表ID,纬度和经度的列表:
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',
'...', '...' , '...]
我正在尝试检查同一ID的连续重复位置。即如果相同的ID具有相同的坐标,那么我只想保留后者。
到目前为止,我已经尝试执行以下操作:
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加到计数器中,这样它将获得下一个ID(纬度和经度),并忽略该实例。如果它们彼此不相等,则将它们添加到新列表中,即,将删除两者中的第一个匹配项。
如果ID和坐标与下面的ID和坐标相同,则实际上是有效的。但是,如果您可能已经发现,如果另一个实例将稍后出现在列表中,则无法正常工作。
我的问题是: 我如何确保以后出现的具有相同ID / Lat / lon的东西会删除以前的ID / Lat / lon?必须有一个更简单的方法来实现这一点?我对python很陌生,并且我已经花了很多时间在此上,所以希望您能为我解决问题。