dictionary help

Dave Angel davea at ieee.org
Tue Aug 11 07:37:25 EDT 2009


Krishna Pacifici wrote:
> Hi,
> kind of a newbie here, but I have two questions that are probably pretty simple.
>
> 1.  I need to get rid of duplicate values that are associated with different keys in a dictionary.  For example I have the following code.
> s={}
> s[0]=[10,2,3]
>  s[10]=[22,23,24]
>  s[20]=[45,5]
> s[30]=[2,4]
> s[40]=[6,7,8]
>
> Now I want to be able to loop through the primary keys and get rid of duplicates (both in keys and values) so that I would have either a new dictionary or the same dictionary but with the following values:
>
> s[0]=[3]
>  s[10]=[22,23,24]
>  s[20]=[45,5]
> s[30]=[2,4]
> s[40]=[6,7,8]
>
> It doesn't matter which value gets removed as long as there is only one remaining, so in this example it doesn't matter that 2 got removed from s[0] or from s[30] as long as there is only one 2 in the dictionary.
>
> 2.  I need to be able to loop over the values in the dictionary when there are multiple values assigned to each key like above and assign new values to those values.  Taking the above example I would want to assign a new value so that when you called s[0] it would equal [3,4] say if 4 was the new value.  I think this should be as simple as adding a value, but I kept on having difficulty.
>
> Any suggestions would be greatly appreciated.
>
> Thank you very much,
> Krishna
>
>
>   
Sounds like homework.  If it was for an unconstrained project, I'd 
design a different data structure, one that directly enforced the data 
constraints.  So far, I can't imagine a useful reason for this 
particular set of constraints.

Let's break the problems down.

1a)   Do you know how to write a loop that visits all the keys of a 
dictionary?
1b)  Do you know how to safely check if a particular key exists?     
e.g.      if   key in s:
1c)  Do you know how to collect a set of values, so that when a 
duplicate is found, it can be recognized as such?
1d) Do you know how to remove an item from a list?

2a)  Like 1a)
2b) Do you know how to append a value to the end of a list?  Is s[key] a 
list?


DaveA




More information about the Python-list mailing list