# _________________________________________________________________________ # # PyUtilib: A Python utility library. # Copyright (c) 2008 Sandia Corporation. # This software is distributed under the BSD License. # Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, # the U.S. Government retains certain rights in this software. # _________________________________________________________________________ def median(mylist): """ Returns the median value of a list """ mylist = list(mylist) mylist.sort() if (len(mylist) == 0): raise ArithmeticError( "Attempting to compute the median of a zero-length list") elif (len(mylist) == 1): return mylist[0] elif (divmod(len(mylist), 2)[1] == 1): return mylist[(len(mylist) - 1) / 2] ndx = len(mylist) / 2 return (mylist[ndx - 1] + mylist[ndx]) / 2.0