Hi, My data file is something like this:
1 GLY HA2=3.7850 HA3=3.9130 2 SER H=8.8500 HA=4.3370 N=115.7570 3 LYS H=8.7530 HA=4.0340 HB2=1.8080 N=123.2380 4 LYS H=7.9100 HA=3.8620 HB2=1.7440 HG2=1.4410 N=117.9810 5 LYS H=7.4450 HA=4.0770 HB2=1.7650 HG2=1.4130 N=115.4790 6 LEU H=7.6870 HA=4.2100 HB2=1.3860 HB3=1.6050 HG=1.5130 HD11=0.7690 HD12=0.7690 HD13=0.7690 N=117.3260 7 PHE H=7.8190 HA=4.5540 HB2=3.1360 N=117.0800 8 PRO HD2=3.7450 9 GLN H=8.2350 HA=4.0120 HB2=2.1370 N=116.3660 10 ILE H=7.9790 HA=3.6970 HB=1.8800 HG21=0.8470 HG22=0.8470 HG23=0.8470 HG12=1.6010 HG13=2.1670 N=119.0300 11 ASN H=7.9470 HA=4.3690 HB3=2.5140 N=117.8620 12 PHE H=8.1910 HA=4.1920 HB2=3.1560 N=121.2640 13 LEU H=8.1330 HA=3.8170 HB3=1.7880 HG=1.5810 HD11=0.8620 HD12=0.8620 HD13=0.8620 N=119.1360 ........................ ....................... where first column is the residue number and I want to print the individual atom chemical shift value one by one along with residue number.....for example for atom HA2 it should be: 1 HA2=3.7850 2 HA2=nil 3 HA2=nil ..... ............ .......... 13 HA2=nil similarly for atom HA3 it should be same as above: 1 HA3=3.9130 2 HA3=nil 3 HA3=nil ........... ............ ............ 13 HA3=nil while for atom H it should be: 1 H=nil 2 H=8.8500 3 H=8.7530 4 H=7.9100 5 H=7.4450 ........ can you suggest me how to produce nested dicts like this: {1: {'HA2': 3.785, 'HA3': 3.913}, 2: {'H': 8.85, 'HA': 4.337, 'N': 115.757}, 3: {'H': 8.753, 'HA': 4.034, 'HB2': 1.808, 'N': 123.238}, 4: {'H': 7.91, 'HA': 3.862, 'HB2': 1.744, 'HG2': 1.441, 'N': 117.981}, 5: {'H': 7.445, 'HA': 4.077, 'HB2': 1.765, 'HG2': 1.413, 'N': 115.479}, 6: {'H': 7.687, 'HA': 4.21, 'HB2': 1.386, 'HB3': 1.605, 'HD11': 0.769, 'HD12': 0.769, 'HD13': 0.769, 'HG': 1.513, 'N': 117.326}, 7: {'H': 7.819, 'HA': 4.554, 'HB2': 3.136, 'N': 117.08}, 8: {'HD2': 3.745}, 9: {'H': 8.235, 'HA': 4.012, 'HB2': 2.137, 'N': 116.366}, 10: {'H': 7.979, 'HA': 3.697, 'HB': 1.88, 'HG12': 1.601, 'HG13': 2.167, 'HG21': 0.847, 'HG22': 0.847, 'HG23': 0.847, 'N': 119.03}, 11: {'H': 7.947, 'HA': 4.369, 'HB3': 2.514, 'N': 117.862}, 12: {'H': 8.191, 'HA': 4.192, 'HB2': 3.156, 'N': 121.264}, 13: {'H': 8.133, 'HA': 3.817, 'HB3': 1.788, 'HD11': 0.862, 'HD12': 0.862, 'HD13': 0.862, 'HG': 1.581, 'N': 119.136}} Thanks, Amrita On Wed, Dec 25, 2013 at 7:28 PM, Dave Angel <da...@davea.name> wrote: > On Wed, 25 Dec 2013 16:17:27 +0800, Amrita Kumari <amrita....@gmail.com> > wrote: > >> I tried these and here is the code: >> > > > f=open('filename') >> lines=f.readlines() >> new=lines.split() >> > > That line will throw an exception. > >> number=int(new[0]) >> mylist=[i.split('=')[0] for i in new] >> > > > one thing I don't understand is why you asked to remove first two >> items from the list? >> > > You don't show us the data file, but presumably he would ask that because > the first two lines held different formats of data. Like your number= line > was intended to fetch a count from only line zero? > > > > and is the above code alright?, it can produce >> output like the one you mentioned: >> {1: {'HA2': 3.785, 'HA3': 3.913}, >> 2: {'H': 8.85, 'HA': 4.337, 'N': 115.757}, >> > > The code above won't produce a dict of dicts. It won't even get past the > exception. Please use copy/paste. > > -- > DaveA > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor