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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor