import re


def sort_for_humans(input_list):
    """
    Sort the given list in the way that humans expect.
    Adapted from https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/

    E.g. ['Field 1', 'field 10', 'Field 12', 'field 13', 'Field 2', 'field 23']
    will produce (note case-insensitivity)
         ['Field 1', 'Field 2', 'field 10', 'Field 12', 'field 13', 'field 23']
    """
    convert = lambda text: int(text) if text.isdigit() else text.lower()
    alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
    return sorted(input_list, key=alphanum_key)