Реализация 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 шт):
Строка это неизменяемый тип данных в питоне. При любых операциях будет создаваться новая.
Можно написать что то вроде
s=s[-1] +s[1:-1] + s[0]
Но это будет новая строка в новом куске памяти.
Медода манипулировать строкой inplace нет
Разворот строки срезом делается так
print(line[::-1])
Можно использовать тот же цикл, только в обратном порядке и с отрицательным шагом.
line = input('Введите строку, которую нужно перевернуть: ')
reversed_line = ""
for i in range(len(line) - 1, -1, -1):
reversed_line += line[i]
print(f'Перевернутая строка: {reversed_line}')
А что насчет срезов?
line = input('Введите строку, которую нужно перевернуть: ')
print(f'Перевернутая строка: {line[::-1]}')