from typing import Iterable


def humanize_list(iterable: Iterable[str]) -> str:
    """Return a grammatically correct English phrase of a list of items.

    Parameters
    ----------
    iterable : iterable of str
        Any list of items.

    Returns
    -------
    phrase : str
        A grammatically correct way of saying the iterable.

    Examples
    --------
    >>> humanize_list(['tomato'])
    'tomato'
    >>> humanize_list(['tomato', 'cabbage'])
    'tomato and cabbage'
    >>> humanize_list(['tomato', 'cabbage', 'lettuce'])
    'tomato, cabbage, and lettuce'

    Note
    ----
    Any list with length greater than two will, of course, use an Oxford comma.

    """
    iterable = list(map(str, iterable))
    if len(iterable) == 1:
        return ''.join(iterable)
    elif len(iterable) == 2:
        return ' and '.join(iterable)
    else:
        iterable[-1] = f'and {iterable[-1]}'
        return ', '.join(iterable)