Hi, thank you very much for suggesting a way. In fact I tried and I found another way to do it. could you please suggest if something is wrong because I have false positive results in the output. That means I getting more that the values I have in spot_cor. For example I have 2500 elements in spot_cor list. I am searching each element if it is in spot_init. IF it is there then I am writing it to a file. What I expect is to get 2500 elements. However I am getting 500 elements extra. I do not understand how is this possible.
Code: >>> out = open('sa_int_2.txt','w') >>> for ele1 in range(len(spot_cor)): x = spot_cor[ele1] for ele2 in range(len(spot_int)): cols = split(spot_int[ele2],'\t') y = (cols[0]+'\t'+cols[1]) if x == y: for ele3 in spot_int: if y in ele3: out.write(ele3) out.write('\n') On top of this this process is VERY SLOW on high end server too. I think its just the way it is to deal with string processing. As you asked I am all parsing out the pieces for a tab-delimitted text. I can get the values as CSV instead of tab delimitted. But what is the way using CSV to deal with this situation. thanks Kumar --- Bob Gailer <[EMAIL PROTECTED]> wrote: > At 02:51 PM 12/8/2004, kumar s wrote: > >Dear group, > > > > I have two tables: > > > >First table: spot_cor: > >432 117 > >499 631 > >10 0 > >326 83 > >62 197 > >0 0 > >37 551 > > > > > > > >Second table: spot_int > >0 0 98 > >1 0 5470 > >2 0 113 > >3 0 5240 > >4 0 82.5 > >5 0 92 > >6 0 5012 > >7 0 111 > >8 0 4612 > >9 0 115 > >10 0 4676.5 > > > > > > > >I stored these two tables as lists: > > > > >>> spot_cor[0:5] > >['432\t117', '499\t631', 10\t0', '326\t83', > '62\t197'] > > Note there is no ' before the 10. That won't fly' > > > >>> spot_int[0:5] > >[' 0\t 0\t18.9', ' 1\t 0\t649.4', ' 10\t > >0\t37.3', ' 3\t 0\t901.6', ' 4\t 0\t14.9'] > > It would be a lot easier to work with if the lists > looked like (assumes all > data are numeric): > [(432,117), (499,631), (10,0), (326,83), (62,197)] > [(0,0,18.9), (1,0,649.4), (10,0,37.3), (3,0,901.6), > (4,0,14.9)] > > What is the source for this data? Is it a > tab-delimited file? If so the CSV > module can help make this translation. > > I also assume that you want the first 2 elements of > a spot_int element to > match a spot_cor element. > > Then (for the subset of data you've provided): > > >>> for ele1 in spot_cor: > ... for ele2 in spot_int: > ... if ele1 == ele2[:2]: > ... print "%8s %8s %8s" % ele2 > ... > 10 0 37.3 > > >I want to write all the three columns of spot_int. > >[snip] > > Hope that helps. > > Bob Gailer > [EMAIL PROTECTED] > 303 442 2625 home > 720 938 2625 cell > > __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250 _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor