Как поменять местами индекс функции enumerate и самого объекта

Подскажите, как правильно решить задачу ниже:

Используя цикл for и функцию enumerate() вывести произвольную строку на экран и при этом убрать все пробелы и на их месте вывести номер слова по счету.

Пример: исходная строка 'hello hello Hello hello' -> выведено на экран hello1hello2Hello3hello4.

Ниже привожу код на проверку

for i, d in enumerate(['hello', 'hello', 'Hello', 'hello'], start=1):
        print(i, d, end= '')

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

Автор решения: 1VK

Попробуй:

print(d + **str(i)**, end= '')
→ Ссылка
Автор решения: MarianD

Ответ на вопрос в заголовке в связи с вашим кодом: 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".

→ Ссылка