<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def enumeration(values, converter=str, default=''):
 """Return an enumeration string based on the given values. The following four examples show the standard output of function |enumeration|: 'text, 3, and []' 'text and 3' 'text' '' All given objects are converted to strings by function |str|, as shown by the first two examples. This behaviour can be changed by another function expecting a single argument and returning a string: 'str, int, and list' Furthermore, you can define a default string that is returned in case an empty iterable is given: 'nothing' """

    values = tuple(converter(value) for value in values)
    if not values:
        return default
    if len(values) == 1:
        return values[0]
    if len(values) == 2:
        return ' and '.join(values)
    return ', and '.join((', '.join(values[:-1]), values[-1]))