lambdamusic
2/7/2013 - 9:28 PM

Django: Remove duplicates from a list

Django: Remove duplicates from a list

def remove_duplicates(seq, idfun=None):  
    # order preserving 
    if idfun is None: 
        def idfun(x): return x 
    seen = {} 
    result = [] 
    for item in seq: 
        marker = idfun(item) 
        # in old Python versions: 
        # if seen.has_key(marker) 
        # but in new ones: 
        if marker in seen: continue 
        seen[marker] = 1 
        result.append(item) 
    return result



>>> a=list('ABeeE') 
>>> f5(a) 
['A','B','e','E'] 
>>> f5(a, lambda x: x.lower()) 
['A','B','e']