list = [ [(34.5464,58.3435),35] [(34.5464,58.3435),17] [(34.5464,58.3435),23] [(36.6575,62.6545),89] [(31.2101,45.9789),2] [(31.2101,45.9789),12] [(37.5462,48.7521),78] ]
list_dub_max = [ [(34.5464,58.3435),35] [(31.2101,45.9789),12] ]
def getFilteredList(l): list_dub_max = {} for val in l: if (val[0] in list_dub_max and list_dub_max[val[0]] < val[1]) or val[0] not in list_dub_max: list_dub_max[val[0]] = val[1] return [[k,v] for k,v in list_dub_max.iteritems()]
list_dub_max = {} list_dub_max = {val[0]:val[1] for val in l if (val[0] in list_dub_max and list_dub_max[val[0]] < val[1]) or val[0] not in list_dub_max} list_dub_max = [[k,v] for k,v in list_dub_max.iteritems()]
l = [ [(34.5464,58.3435),35], [(34.5464,58.3435),17], [(34.5464,58.3435),23], [(36.6575,62.6545),89], [(31.2101,45.9789),2], [(31.2101,45.9789),12], [(37.5462,48.7521),78], ]
>>> data = [[(34.5464, 58.3435), 35], [(34.5464, 58.3435), 17], [(34.5464, 58.3435), 23], [(36.6575, 62.6545), 89], [(31.2101, 45.9789), 2], [(31.2101, 45.9789), 12], [(37.5462, 48.7521), 78]] >>> result={} >>> for t,v in data: x = result.get(t) if x: if x<v: result[t]=v else: result[t] = v >>> result = result.items() >>> result [((37.5462, 48.7521), 78), ((31.2101, 45.9789), 12), ((36.6575, 62.6545), 89), ((34.5464, 58.3435), 35)]
result = [[k,v] for k,v in result.iteritems()]