John Fouhy wrote: > On 02/10/2007, GTXY20 <[EMAIL PROTECTED]> wrote: >> Hello all, >> >> Let's say I have the following dictionary: >> >> {1:(a,b,c), 2:(a,c), 3:(b,c), 4:(a,d)} >> >> I also have another dictionary for new value association: >> >> {a:1, b:2, c:3} >> >> How should I approach if I want to modify the first dictionary to read: >> >> {1:(1,2,3), 2:(1,3), 3:(2,3), 4:(1,d)} >> >> There is the potential to have a value in the first dictionary that will not >> have an update key in the second dictionary hence in the above dictionary >> for key=4 I still have d listed as a value. > > You could use the map function... > > Let's say we have something like: > > transDict = { 'a':1, 'b':2, 'c':3 } > > We could define a function that mirrors this: > > def transFn(c): > try: > return transDict[c] > except KeyError: > return c > > Then if you have your data: > > data = { 1:('a','b','c'), 2:('a','c'), 3:('b','c'), 4:('a','d')} > > You can translate it as: > > for key in data.keys(): > data[key] = map(transFn, data[key]) > > HTH! >
Or without defining a function : for k in data : data[k] = map(transDict.get, data[k], data[k]) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor