Автоматизируйте скучные вещи с помощью 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)
вывод: яблоки, бананы, тофу и кошки