Автоматизируйте скучные вещи с помощью Python: Comma Code

В настоящее время я прорабатываю эту книгу для начинающих и завершила один из практических проектов «Код запятой», в котором пользователю предлагается создать программу, которая:

принимает значение списка в качестве аргумента и возвращает строку со всеми элементами, разделенными запятой и пробелом, с последним и вставленным перед последним элементом. Например, передаваяниже список спама для функции будет возвращать «яблоки, бананы, тофу и кошек». Но ваша функция должна работать с любым переданным ей списком.

spam = ['apples', 'bananas', 'tofu', 'cats']

Мое решение проблемы (которая прекрасно работает):

spam= ['apples', 'bananas', 'tofu', 'cats']
def list_thing(list):
    new_string = ''
    for i in list:
        new_string = new_string + str(i)
        if list.index(i) == (len(list)-2):
            new_string = new_string + ', and '
        elif list.index(i) == (len(list)-1):
            new_string = new_string
        else:
            new_string = new_string + ', '
    return new_string

print (list_thing(spam))

Мой единственный вопрос, могу ли я сократить свой код? или сделать его более «питоническим»?

Вот мой код

def listTostring(someList):
    a = ''
    for i in range(len(someList)-1):
        a += str(someList[i])
    a += str('and ' + someList[len(someList)-1])
    print (a)

spam = ['apples', 'bananas', 'tofu', 'cats']
listTostring(spam)

вывод: яблоки, бананы, тофу и кошки

Ответы на вопрос(20)

Ваш ответ на вопрос