On 1/20/2012 1:49 PM, Tamanna Sultana wrote:

can some one help me??
I would like to create a function that, given a bin, which is a list
(example below), generates averages for the numbers separated by a
string 'end'. I am expecting to have 4 averages from the above bin,
since there are 4 sets of numbers separated by 4 'end' strings

[Posting your overly long set of data lines with a '>' quote at the beginning of each line was a nuisance. Reposted with few lines. I will let you compare your code to mine.]

bin = ['2598.95165', '2541.220308', '221068.0401', 'end', '4834.581952',
 '1056.394859', '3010.609563', '2421.437603', '4619.861889',
  '3682.012227', '3371.092883', '6651.509488', '7906.092773',
 '7297.133447', 'end', '4566.874299', 'end', '4255.700077',
 '1857.648393', '11289.48095', '2070.981805', '1817.505094',
 '563.0265409', '70796.45356', '565.2123689', '6560.030116',
 '2668.934414', '418.666014', '5216.392132', '760.894589', '8072.957639',
 '346.5905371', 'end']

def average(bin):
    num=[]
    total = 0.0
    count=0
    for number in bin:
        if number!='end':
            total += float(number)
            count+=1
        else:
            num.append(total/count)
            total = 0.0
            count= 0
    return num

print(average(bin))

>>>
[75402.73735266666, 4485.0726684, 4566.874299, 7817.36494866]
--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to