>>> mean = lambda x: sum(x)/len(x) >>> median = lambda x: (max(x)-min(x))/2 >>> mode = lambda x: max([(x.count(y),y) for y in x])[1]
"Robert Brewer" <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > (now that we have a meaningful subject line) > > Alfred Canoy wrote: > > >> I'm just new to programming and would like to ask for help.. > > >> > > >> Build a module that contains three functions that do the following: > > >> > > >> a.. Compute the average of a list of numbers > > >> b.. Finds the statistical median value of a list of numbers > > >> c.. Finds the mode of a list of numbers > > >> > > >> Can you please give me clue how I should start solving the > > >> following problem > > >> below? Here's the source code that I did so far: > > >> > > >> # compute the average of a list of numbers: > > >> # Keeps asking for numbers until 0 is entered > > >> # Prints the average value > > >> > > >> count = 0 > > >> sum = 0 > > >> number = 1 > > >> > > >> print 'Enter 0 to exit the loop' > > >> while number != 0: > > >> number = input ('Enter a number: ') > > >> count = count + 1 > > >> sum = sum + number > > >> count = count -1 > > >> print ' The average is:', sum/count > > For the mode, you might build a dictionary: > > freq = {} > while number != 0: > number = input ('Enter a number: ') > count = count + 1 > sum = sum + number > try: > freq[number] += 1 > except KeyError: > freq[number] = 1 > > ...then you can check for the largest value in that dictionary: > > max = 0 > mode = None > for k, v in freq.iteritems(): > if v > max: > max = v > mode = k > > I leave the rest in your capable hands... ;) Including the case where > two numbers occur in equal frequencies. ;;) > > > Robert Brewer > MIS > Amor Ministries > [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list