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

Reply via email to