Строки в Python являются неизменяемыми, как числа и кортежи. Это означает, что вы можете создавать их, перемещать их, но не изменять их. Почему это так? По нескольким причинам (вы можете найти лучшее обсуждение в Интернете):
- По своей конструкции строки в Python считаются элементарными и неизменяемыми. Это подстегнет лучше, безопаснее стили программирования.
- Неизменность строк имеет преимущества в эффективности, главным образом в области более низких требований к хранению.
- Это также делает строки более безопасными для использования в качестве словарных ключей
Если вы немного загляните в сеть Python, вы заметите, что наиболее частый совет «как изменить мою строку» - «создайте свой код так, чтобы вам не пришлось его менять». Справедливо, но какие еще есть варианты? Вот некоторые из них:
- name = name [: 2] + ‘G’ + name [3:] - это неэффективный способ выполнить работу. Семантика фрагментов Python гарантирует, что это работает корректно во всех случаях (если ваш индекс находится в диапазоне), но с использованием нескольких копий строк и конкатенаций, это едва ли ваш лучший выстрел в эффективный код. Хотя, если вы не заботитесь об этом (и, скорее всего, вам это не нужно), это надежное решение.
- Используйте класс MutableString из модуля UserString. Хотя он не более эффективен, чем предыдущий метод (он выполняет тот же трюк под капотом), он более синтаксически согласуется с обычным использованием строк.
- Используйте список вместо строки для хранения изменяемых данных. Конвертировать туда и обратно, используя список и присоединиться. В зависимости от того, что вам действительно нужно, ord и chr также могут быть полезны.
- Использовать объект массива. Это, пожалуй, лучший вариант, если вы используете строку для хранения ограниченных данных, таких как двоичные байты, и хотите быстрый код.
Плагиат с моей собственной страницы на Python: -)