[Tutor] how can I use Set.interaction function on a dictionary

Srinivas Iyyer srini_iyyer_bio at yahoo.com
Sun Apr 23 07:46:02 CEST 2006


Hi Tutors, 

Background:

1. I have a dictionary with 4 keys and some repeated
values for each key.

>>> dida
{'NM_001033044': [32842023, 32842023, 32842023,
32842023, 32842023, 32842023, 32842023, 32842023,
32842023, 32842023, 32842023, 32842023, 32843894,
32843894, 32843894, 32843894, 32843894, 32843894,
32843894, 32843894, 32843894, 32843894, 32844846,
32844846, 32844846, 32844846, 32844846, 32844846,
32844846, 32844846, 32844846, 32844846, 32845745],
'NM_002065': [32842023, 32842023, 32842023, 32842023,
32842023, 32842023, 32842023, 32842023, 32842023,
32842023, 32842023, 32842023, 32843894, 32843894,
32843894, 32843894, 32843894, 32843894, 32843894,
32843894, 32843894, 32843894, 32844846, 32844846,
32844846, 32844846, 32844846, 32844846, 32844846,
32844846, 32844846, 32844846, 32845745], 'NM_015701':
[32844783, 32844783, 32844783, 32844783, 32844783,
32844783], 'NM_001033056': [32842023, 32842023,
32842023, 32842023, 32842023, 32842023, 32842023,
32842023, 32842023, 32842023, 32842023, 32842023,
32843894, 32843894, 32843894, 32843894, 32843894,
32843894, 32843894, 32843894, 32843894, 32843894,
32844846, 32844846, 32844846, 32844846, 32844846,
32844846, 32844846, 32844846, 32844846, 32844846,
32845745]}

In the case of 'dida', the list of values have
repeated elements. So I got rid of duplicates in the
value lists (value as in key:value pair) in the case
of 'didi'



>>> didi
{'NM_001033044': [32842023, 32843894, 32844846,
32845745], 'NM_002065': [32844846, 32842023, 32845745,
32843894], 'NM_015701': [32844783], 'NM_001033056':
[32843894, 32844846, 32845745, 32842023]}



Question:

1. How can I get A^B^C^D(^ = intersection) where A, B,
C and D are keys from dida or didi.

2. How can I store values generated dynamically. For
example, here in 'dida' I know there are 4 keys, but
how can I create 4 lists while running in for loop and
store the key values in 'dida'. 

Do I have to write an class object that will create
empty lists depending on number of keys a dictionary
has?

I am loosing my mind because I do not know how to
store the values for each key in a loop and do set
operations.

For instance, I tried the following way:

>>> for m in range(len(didi.keys())):
...     x = m+1
...     a = Set(didi[didi.keys()[m]])
...     print a
...
Set([32845745, 32844846, 32843894, 32842023])
Set([32845745, 32843894, 32844846, 32842023])
Set([32844783])
Set([32845745, 32844846, 32843894, 32842023])

I would be happy, if I could store all 4 sets
(above)into listsor sets A, B, C and D and do 
(A^B)^(C^D).

Could any one help me please. 


My ultimate goal is to do set operations on this
dictionary.  If things get more complicated, I will
seek R's help through RPy.

Thanks

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Tutor mailing list