faqts : Computers : Programming : Languages : Python : Snippets : Lists

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

25 of 29 people (86%) answered Yes
Recently 7 of 10 people (70%) answered Yes

Entry

Removing duplicate elements from list

Feb 1st, 2007 13:56
Miguel Ángel Alarcos, thanos vassilakis, Nathan Wallace, unknown unknown, Hans Nowak, Snippet 390, Python Snippets Support Team


"""
Packages: basic_datatypes.lists
"""
def remove_dups(lst):
    """ Removes duplicate elements from list. Drawbacks:
        - Returns an unsorted list. 
        - Does not work with lists, dicts etc. as list elements.
    """
    dick = {}
    for item in lst:
        dick[item] = None
    return dick.keys()
#Or slightly faster [tv]:
from operator import setitem
def distinct(lst):
    dict={}
    setter = setitem
    map(setter, (dict,)*len(lst), lst, [])
    return dict.keys()
if __name__ == "__main__":
    L = [1, "glork", "foo", -2.1, "foo", "bar", "glork", -2.2, -2.1, 1, 
1,
      7, 12, 100L, -2.1, 18]
    print remove_dups(L)
#This one:
[i for i in x if x.count(i) == 1]