изменить 2 байта в строке - PullRequest
0 голосов
/ 15 ноября 2009

Я бы хотел изменить 2 байта в строке следующим образом:

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Давайте представим, что я хочу заменить 'RS' на 11, я знаю, как это сделать одним байтом, например [:], но для двух или более в середине строки?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 15 ноября 2009

Строки неизменны, вы не можете их изменить. Вы должны сделать новую строку из частей старой:

>>> az= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> az= az[:17]+'11'+az[19:]
>>> az
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'

хотя в зависимости от того, что вы делаете, может быть более подходящий способ справиться с этим, чем полагаться на фиксированные индексы, например

>>> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.replace('RS', '11', 1)
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'
1 голос
/ 15 ноября 2009

Я бы использовал string.replace () :

>>> import string
>>> az = string.lowercase
>>> az = az.replace('rs', '11')
>>> az
'abcdefghijklmnopq11tuvwxyz'
0 голосов
/ 15 ноября 2009

Я думаю, что это вопрос с подвохом, см. "как сделать это одним байтом" :

>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ".replace("R","1").replace("S","1")
>>> print st
ABCDEFGHIJKLMNOPQ11TUVWXYZ
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...