`middle[li_List] := Part[li, Union@Through[{Floor, Ceiling}[(Length@li + 1)/2]]]` I wouldn't do it this way, but just for fun: `mid[li_List] := li[[Nearest[Range[len = Length@li], (len + 1)/2]]]`