On 28/09/11 04:34, lina wrote:

File 1 is:

      3         C     1  CUR     C19     1    0.200  12.0110
      4       CR1     1  CUR     C20     1   -0.060  12.0110
      5        HC     1  CUR     H20     1    0.060   1.0080

File 2 is:
ATOM      2  H20 CUR     1      30.338  28.778  -6.812  1.00  0.00
ATOM      4  C20 CUR     1      31.394  28.922  -7.039  1.00  0.00
ATOM      5  C19 CUR     1      31.790  29.357  -8.323  1.00  0.00

I wish to get:

ATOM      5  C19 CUR     1      31.790  29.357  -8.323  1.00  0.00
ATOM      4  C20 CUR     1      31.394  28.922  -7.039  1.00  0.00
ATOM      2  H20 CUR     1      30.338  28.778  -6.812  1.00  0.00

The dictionary is C19 C20 H20 sequence read from file 1 field 5.
rearrange the file 2 field 3 following the sequence of C19, C20, H20.

OK, so just to confirm: you want to sort file 2 based on the order of field 5 in file 1.

So read file2 into a dictionary keyed by field 3
Then read file 1 and output the dictionary entry associated with field 5

So in pseudo code:

d = dict()
for line in file1:
    d[ line.split()[2] ] = line

for line in file1:
    print d[ line.split()[4] ]

Is that what you want?

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to