Мы видели, что списки изменяемы (их можно изменить), а кортежи неизменны (их нельзя изменить).
Попробуем понять это на примере.
Вам дана неизменяемая строка, и вы хотите внести в нее изменения.
Читайте также: Решение проблемы модуля календаря HackerRank в python | решение проблемы на питоне
Пример
>>> string = "abracadabra"
Вы можете получить доступ к индексу:
>>> print string[5]
a
Что делать, если вы хотите присвоить значение?
>>> string[5] = 'k'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Как бы вы подошли к этому?
- Одним из решений является преобразование строки в список, а затем изменение значения.
Пример
>>> string = "abracadabra"
>>> l = list(string)
>>> l[5] = 'k'
>>> string = ''.join(l)
>>> print string
abrackdabra
- Другой подход состоит в том, чтобы разрезать строку и соединить ее обратно.
Пример
>>> string = string[:5] + "k" + string[6:]
>>> print string
abrackdabra
Читайте также: HackerRank Найдите решение проблемы со строками в python | решение проблемы на питоне
Задача
Прочитать заданную строку, изменить символ в заданном индексе, а затем напечатать измененную строку.
Описание функции
Завершите функцию mutate_string в редакторе ниже.
mutate_string имеет следующие параметры:
- строка строка: строка для изменения
- int position: индекс для вставки символа
- строковый символ: символ для вставки
Возврат
- строка: измененная строка
Формат ввода
Читайте также: Решение проблемы Hackerrank Mutations в Python | решение проблемы на питоне
Первая строка содержит строку .
Следующая строка содержит целое число , позицию индекса и строку , разделенные пробелом.
Пример ввода
STDIN Function ----- -------- abracadabra s = 'abracadabra' 5 k position = 5, character = 'k'
Пример вывода
abrackdabra
Problem solution in Python 2 programming.
S=raw_input()
i,c=map(str,raw_input().split())
i=int(i)
print S[:i] + c + S[i+1:]
Решение проблемы в программировании на Python 3.
string = input() line = input().split() i, c = int(line[0]), line[1] print(string[:i] + c + string[i+1:])
Решение проблемы в программировании PyPy.
Подробнее:-Решение проблемы в программировании PyPy.