On Wed, Dec 28, 2016 at 2:14 PM, Larry Martell <larry.mart...@gmail.com> wrote: > > I have a list containing a list of strings that I want to sort > numerically by one of the fields. I am doing this: > > sorted(rows, key=float(itemgetter(sortby)))
I'm guessing that you left out a lambda here since the key argument takes a function. > Which works fine as long as all the sort keys convert to a float. > Problem is that some are blank or None and those throw an exception. > How can I handle that case and still sort? I'd want the blank or None > fields to come out either at the beginning or end of the sorted list > (not sure what the customer wants for this yet). def sort_key(sortby, none_first=False): def key(row): try: value = float(row[sortby]) except ValueError: value = None return ((value is None) != none_first, value) return key sorted(rows, key=sort_key(4, none_first=True)) -- https://mail.python.org/mailman/listinfo/python-list