On or about 2009 Sep 8, at 1:51 PM, Alan Gauld indited:
"kevin parks" <k...@me.com> wrote
What would this look like if i want to use a straight up built-in dictionary type and not the collections.defaultdict.

Not too different:

import collections
def foo():
lookup = collections.defaultdict(list)
# Doug: lookup = dict()
x = range(10)
y = range(5, 15)
z = range(8, 22)
sets = {'x': set(x), 'y': set(y), 'z': set(z)}
for key, value in sets.items():
       for element in value:
                lookup[element] = lookup.get(element, []).append(key)
# Doug: That doesn't do what you think it does, it won't insert the new list into the dictionary. # Doug: I think what you want is lookup.setdefault(element, []).append(key)
print "\n", lookup, "\n\n"
for x in lookup:
    lookup[x].sort()
    print x, lookup[x]
print "\n"

At least I think thats all you need here.


>>> help(dict.setdefault)
setdefault(...)
    D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D

-Doug


-Doug
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to