#  _________________________________________________________________________
#
#  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

