модификация строк в Python - PullRequest
19 голосов
/ 12 августа 2010

В Python строки неизменны.

Какова стандартная идиома для обхода строки за символом и ее изменения?

Единственные методы, которые я могу придумать, - это некоторые действительно вонючие хаки, связанные с объединением в результирующую строку.

-

В С:

for(int i = 0; i < strlen(s); i++)
{
   s[i] = F(s[i]);
}

Это супер выразительно и говорит именно то, что я делаю. Это то, что я ищу.

Ответы [ 13 ]

0 голосов
/ 12 августа 2010

Вы можете использовать класс StringIO для получения файлово-изменяемого интерфейса строки.

0 голосов
/ 12 августа 2010

Если мне когда-нибудь понадобится что-то подобное, я просто преобразую это в изменяемый список

Например ... (хотя было бы проще использовать сортировку (см. Второй пример))

>>> s = "abcdfe"
>>> s = list(s)
>>> s[4] = "e"
>>> s[5] = "f"
>>> s = ''.join(s)
>>> print s
abcdef
>>>
# second example
>>> s.sort()
>>> s = ''.join(s)
0 голосов
/ 12 августа 2010
def modifyIdx(s, idx, newchar):
    return s[:idx] + newchar + s[idx+1:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...