def grammatical_join(words):
    """Join a list of words, using an oxford comma if appropriate."""
    if '__getitem__' not in words:
        words = list(words)

    if len(words) == 2:
        return ' and '.join(words)
    else:
        words = words[:-2] + [', and '.join(words[-2:])]
        return ', '.join(words)