[Tutor] Mapping elements in various lists

Srinivas Iyyer srini_iyyer_bio at yahoo.com
Wed Apr 5 21:49:30 CEST 2006


Hi Alan, 
Thank you again. I did not give a try by using
dictionary power. It works now. 

Thanks again for tip. 

-srini.


dida = {} 
for m in nbat:
        cols = m.split('\t')
        old = cols[0]
        dida.setdefault(old,[]).append(cols[1])

lista = ndat.split('\n')
result = []
for i in lista:
        items = dida.get(i)
        if items is  None:
                result.append(i)
        else:
                for x in items:
                        result.append(i+'\t'+x)


for x in result:
        tabs = x.split('\t')
        if len(tabs)>1:
                for m in nmlist:
                        cols = m.split('\t')
                        colold = cols[0]
                        colnew = cols[1]
                        if tabs[1] == colold:
                                print x+'\t'+colnew
         else:
               print x


:-))

RESULT: 
Contig34839
Contig8376_RC
Contig42014_RC
Contig25622_RC
Contig27915_RC  XM_934912       NM_152513
Contig27915_RC  XM_934911       NM_152513
Contig27915_RC  XM_934908       NM_152513
Contig27915_RC  XM_934906       NM_152513
Contig27915_RC  XM_934902       NM_152513
Contig27915_RC  XM_934901       NM_152513
Contig27915_RC  XM_934899       NM_152513
Contig27915_RC  XM_934897       NM_152513
Contig27915_RC  XM_934896       NM_152513
Contig27915_RC  XM_945989       NM_152513
Contig27915_RC  XM_945987       NM_152513
Contig27915_RC  XM_945986       NM_152513
Contig27915_RC  XM_945985       NM_152513
Contig27915_RC  XM_945983       NM_152513
Contig27915_RC  XM_945982       NM_152513
Contig27915_RC  XM_945980       NM_152513
Contig27915_RC  XM_945978       NM_152513
Contig27915_RC  XM_945977       NM_152513
Contig44682_RC
Contig35934_RC
Contig29373_RC











--- Alan Gauld <alan.gauld at freenet.co.uk> wrote:

> > One of the proble is that, Contig27915_RC is seen
> > associated with many XM entries in nbat.  However,
> > with the above script I could replace only once in
> > xta. I could not print Contig27915_RC with many
> XM_
> > guys in nbat. How can this be done.
> > 
> > Finally, this whole process seems to be more
> > cumbersome to me. Could any one tip me with a new
> way
> > of dealing this 3 way mapping.
> 
> A common generic way to deal with this is to
> construct an 
> intermediate data model such as a dictionary that
> contains 
> the key element and a list of the keyed items in the
> file. 
> The list could be the items themselves ort a tuple
> containing 
> such info as their index (or seek position). Then
> you can iterate 
> over the data making multiple changes as defined in
> the 
> data structure.
> 
> This is somewhat similar to a thread last month,
> take a look 
> in the archives for more ideas.
> 
> Alan G
> Author of the learn to program web tutor
> http://www.freenetpages.co.uk/hp/alan.gauld
> 
> 
> 


__________________________________________________
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