Я хочу изменить значение конкретного индекса строк, но к сожалению
string[4] = "a"
повышения a TypeError
, потому что строки неизменны ("присвоение объекта, не поддерживается").
Так вместо этого я использую довольно неуклюжее
string = string[:4] + "a" + string[4:]
Существует ли лучший способ сделать это?
Строки в Python неизменяем, как числа и кортежи. Это означает, что вы можете создавать их, перемещать, но не изменять. Почему это так? По нескольким причинам (более подробное обсуждение можно найти в Интернете):
Если вы немного осмотритесь в сети Python, вы заметите, что наиболее частый совет «как изменить мою строку» - это «спроектируйте свой код так, чтобы вам не придется его менять ». Достаточно честно, но какие еще есть варианты? Вот некоторые из них:
Плагиат с моей собственной страницы на тему Python: -)
mystring=list("abcdef")
mystring[4]="Z"
print ''.join(mystring)
>>> from UserString import MutableString
>>> s = MutableString('abcd')
>>> s[2] = 'e'
>>> print s
abed