Как поменять местами индекс функции enumerate и самого объекта
Подскажите, как правильно решить задачу ниже:
Используя цикл
forи функциюenumerate()вывести произвольную строку на экран и при этом убрать все пробелы и на их месте вывести номер слова по счету.Пример: исходная строка
'hello hello Hello hello'-> выведено на экранhello1hello2Hello3hello4.
Ниже привожу код на проверку
for i, d in enumerate(['hello', 'hello', 'Hello', 'hello'], start=1):
print(i, d, end= '')
Ответы (2 шт):
Ответ на вопрос в заголовке в связи с вашим кодом: for i, d ..., но print(d, i, ...).
Теперь более правильный подход, как это сделать. Например, так:
for num, word in enumerate(str_.split(), start=1):
print(word, num, sep="", end="")
Тест:
Для строки str_ = " Из песни слова не выкинешь " будет такой вывод:
Из1песни2слова3не4выкинешь5
Объяснение:
.
Сначала из строки str_ создаем список слов с помощью метода .split(), затем в цикле for постепенно выводим эти слова вместе с их номерами.
В функции print() используем
- параметр
sep="", чтобы между словом и номером не появился пробел, - параметр
end="", чтобы после вывода очередного слова и его номера не произошел переход на новую строку,
т.к. по умолчанию значения этих параметров такие: sep=" ", end="\n".