On 23/02/16 20:33, Fosiul Alam wrote: > > so there are 2 dm (dm-30 and dm-31) wich 3 sample value > > dm-30 1.47 36.48 2.82 0.66 270.84 148.56 > 240.96 0.06 44.99 18.27 6.36 > dm-31 1.47 36.49 2.82 0.66 270.85 148.58 > 240.94 0.06 45.03 18.28 6.37 > dm-30 0.00 0.00 0.00 0.00 0.00 0.00 > 0.00 0.00 0.00 2.00 1.00 > dm-31 0.00 0.00 0.00 0.00 0.00 0.00 > 0.00 0.00 0.00 3.00 1.50 > dm-30 0.00 0.00 0.00 0.00 0.00 0.00 > 0.00 0.00 0.00 0.40 0.50 > dm-31 0.00 0.00 0.00 0.00 0.00 0.00 > 0.00 0.00 0.00 0.70 0.60 > > Basically I am interested with 10 and 11 ( last 2 column) with bellow > 2 way > > a) ignore the firsrt value for each dm ( so line number 1 and 2 will > totally ignore) : I am having trouble to do that
We can do that at the end, just before getting the max(). > b) get the max value for clumn 10 and 11 for each dm (dm-30 and dm-31) > : I am having to do that > def _get_io(): > > with open (DM,'r')as f: > content=f.readlines() > return content > > > s_value= dict() > u_value=dict() > You don't need two variables here, just one will do, lets just call it values. > if __name__ == '__main__': > > dm_data=_get_io() > > for line in dm_data: > You missed the line that split the fields fields = line.split() > if fields[0] in s_value: > s_value[fields[0]].append(fields[10]) > else: > s_value[fields[0]]=[fields[10]] > We can tidy that up using the setdefault() method: data = values.setdefault(fields[0],[ [],[] ]) # return lists if avail else empty lists data[0],append(float(fields[10]) data[1],append(float(fields[11]) See if that gets you closer. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor