检查清单中是否有重复的职位。如果发生这种情况,则仅应保留后者。同样在以后发生同一实例时

时间:2019-05-09 15:08:27

标签: python-2.7 loops duplicates sublist

我有一个代表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很陌生,并且我已经花了很多时间在此上,所以希望您能为我解决问题。

0 个答案:

没有答案