Убрать запятую перед 'and'

К списку нужно добавить запятую после каждого элемента кроме последнего, перед ним нужно добавить 'and' что я сделал, но не могу додумать как убрать запятую перед 'and' чтобы было орфографически правильно оформлен вывод.

Мой вывод: 2 eggs, 1 liter sugar, 1 tsp salt, and vinegar

Должно быть: 2 eggs, 1 liter sugar, 1 tsp salt and vinegar

    def format_ingredients(items):
        items[-1] = 'and ' + items[-1]
        return ', '.join(items[:])


    list = ["2 eggs", "1 liter sugar", "1 tsp salt", "vinegar"]
    print(format_ingredients(list))

Ответы (1 шт):

Автор решения: Павел

Пожалуйста, не называйте переменные зарезервированными именами (built-in) в Python, таким образом вы переопределяете стандартные объекты и это может вызвать необычное поведение. Список всех зарезервированных имён

По поводу вашей проблемы, можно решить "в лоб", как и написано у вас в условии, все элементы кроме последнего соединить запятой, а перед последним отдельно добавить "and":

list_ = ["2 eggs", "1 liter sugar", "1 tsp salt", "vinegar"]

print(', '.join(list_[:-1]) + ' and ' + list_[-1])

Вывод:

2 eggs, 1 liter sugar, 1 tsp salt and vinegar
→ Ссылка