[Tutor] Nested dictionary with defaultdict
Kent Johnson
kent37 at tds.net
Wed Apr 16 04:17:08 CEST 2008
GTXY20 wrote:
>
> Hi tutors,
>
> I currently have a dictionary like the following:
>
> {'1': ['220', '220', '220''], '2': ['220', '238', '238', '238', '238'],
> '3': ['220', '238'], '4': ['220', '220'], '5': ['220', '220', '238'],
> '6': ['238', '238'], '7': ['220']}
>
> I am trying to create a dictionary that would list the current key and a
> count of the iterations of values within the value list like so:
>
> {'1': {'220' : 3}, '2': {'220' : 1}, 2: {238 : 4}, '3': {'220' : 1}, 3:
> { '238' : 1}, '4': {220 : 2}, '5': {'220: 2}, '5': {238 : 1}, '6':
> {'238' : 2}, '7': {'220' : 1}}
?? Do you really want keys of '2' and 2? How can you have two keys '5'?
I guess maybe you want
{'1': {'220' : 3}, '2': {'220' : 1, 238 : 4}, '3': {'220' : 1, '238' :
1}, '4': {220 : 2}, '5': {'220: 2, 238 : 1}, '6': {'238' : 2}, '7':
{'220' : 1}}
> Now I am pretty sure that I need to loop through the first dictionary
> and create a defaultdict from the values for each key in that dictionary
> but at this point I am having difficulty coming up with the loop.
>
> I am looking for a satrting point or any suggestions.
Do you know how to turn
['220', '238', '238', '238', '238']
into
{'220' : 1, '238' : 4}
?
If so, then put that code in a loop over the key, value pairs of the dict.
Kent
More information about the Tutor
mailing list