unique values of a Dictionary list (removing duplicate elements of a list)

Peter Otten __peter__ at web.de
Fri May 21 07:50:06 EDT 2010


Chad Kellerman wrote:

> Python users,
>       I am parsing an AIX trace file and creating a dictionary containing
> keys (PIDS) and values (a list of TIDS).  With PIDS being unique process
> ids
> and TIDS, being a list of thread ids.  My function populates the keys so
> that they are unique, but my list contains duplicates.
> 
>      Can someone point me in the right direction so that my dictionary
>      value
> does not contain duplicate elements?
> 
> 
> here is what I got.
> 
> --------------<portion of code that is relevant>------------------
> 
> pidtids  = {}
> 
> # --- function to add pid and tid to a dictionary
> def addpidtids(pid,tid):
>     pidtids.setdefault(pid,[]).append(tid)

Use a set instead of a list (and maybe a defaultdict):

from collections import defaultdict

pidtids = defaultdict(set)

def addpidtids(pid, tid):
    pidtids[pid].add(tid)

Peter




More information about the Python-list mailing list