[Tutor] How to calculate high value from multiple lines for each column
Alan Gauld
alan.gauld at btinternet.com
Tue Feb 23 20:06:55 EST 2016
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
More information about the Tutor
mailing list