Реализация reversed на Python

Мне нужно реализовать функцию, которая переворачивает строку, reversed использовать нельзя. Я написал такой код по заданной блок-схеме(код ниже) и столкнулся с проблемой, что в Python нельзя так работать со строкой(по индексу). Я получаю ошибку TypeError: 'str' object does not support item assignment

Как можно доработать код?(Нельзя использовать сторонние библиотеки). Я могу создать новую строку и пройтись циклом с конца, но можно ли как-то перевернуть эту без создания новой? Код:

line = input('Введите строку, которую нужно перевернуть: ')
l = len(line)-1
for i in range(l, l // 2, 1):
    temp = line[i]
    line[i] = line[l-i]
    line[l-i] = temp
print(f'Перевернутая строка: {line}')

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

Автор решения: eri

Строка это неизменяемый тип данных в питоне. При любых операциях будет создаваться новая.

Можно написать что то вроде

s=s[-1] +s[1:-1] + s[0]

Но это будет новая строка в новом куске памяти.

Медода манипулировать строкой inplace нет

Разворот строки срезом делается так

print(line[::-1]) 
→ Ссылка
Автор решения: type49

Можно использовать тот же цикл, только в обратном порядке и с отрицательным шагом.

line = input('Введите строку, которую нужно перевернуть: ')
reversed_line = ""
for i in range(len(line) - 1, -1, -1):
    reversed_line += line[i]
print(f'Перевернутая строка: {reversed_line}')
→ Ссылка
Автор решения: anton

А что насчет срезов?

line = input('Введите строку, которую нужно перевернуть: ')
print(f'Перевернутая строка: {line[::-1]}')
→ Ссылка
Автор решения: ARTEM

Оптимальный вариант:

line = input('')
print(line[::-1]) 
→ Ссылка