Этот простой код, который просто пытается заменить точку с запятой (в i-определенных позициях) двоеточием, не работает:
for i in range(0,len(line)):
if (line[i]==";" and i in rightindexarray):
line[i]=":"
Выдает ошибку
line[i]=":"
TypeError: 'str' object does not support item assignment
Как я могу обойти это, чтобы заменить точку с запятой двоеточием? Использование замены не работает, поскольку эта функция не принимает индекса - могут быть точки с запятой, которые я не хочу заменять.
пример
В строке может быть любое количество точек с запятой, например: «Привет, привет!;»
Я знаю, какие из них хочу заменить (у меня есть их индекс в строке). Использование замены не работает, поскольку я не могу использовать с ним индекс.
str.replace()
BIF?str.find()
вместо этого, чтобы найти позицию точки с запятой, затем используйте нарезку для извлечения подстроки.Ответы:
Строки в Python неизменяемы, поэтому вы не можете рассматривать их как список и назначать индексы.
.replace()
Вместо этого используйте :Если вам нужно заменить только определенные точки с запятой, вы должны быть более конкретными. Вы можете использовать нарезку, чтобы изолировать часть строки, которую нужно заменить:
Это заменит все точки с запятой в первых 10 символах строки.
источник
Вы можете сделать следующее, чтобы заменить любой символ на соответствующий символ по заданному индексу, если вы не хотите использовать
.replace()
источник
Превратите строку в список; тогда вы можете менять персонажей индивидуально. Затем вы можете собрать его вместе с
.join
:источник
Если вы хотите заменить одну точку с запятой:
Но не тестировал.
источник
line.replace(src,dst)
не.line[:10].replace(src,dst) + line[10:]
делает, но с гораздо меньшей серьезностью. Предположимline = ';'*12
. Ваше решение построит новую строку 12 раз. Принятое решение сделает это один раз.Это должно охватывать немного более общий случай, но вы должны иметь возможность настроить его для своих целей.
Надеюсь это поможет
источник
Вы не можете просто присвоить значение символу в строке. Используйте этот метод для замены значения определенного символа:
Выход: In * ia
Кроме того, если вы хотите заменить say * для всех вхождений первого символа, кроме первого символа, например. строка = лепет выход = ба ** ле
Код:
источник
Если вы заменяете значение индекса, указанное в переменной 'n', попробуйте следующее:
источник
Как насчет этого:
источник
чтобы эффективно использовать метод .replace () в строке без создания отдельного списка, например, взгляните на список имени пользователя, содержащий строку с некоторым пробелом, мы хотим заменить пробел на подчеркивание в каждой строке имени пользователя.
чтобы заменить пробелы в каждом имени пользователя, рассмотрите возможность использования функции диапазона в Python.
источник
Чтобы заменить символ по определенному индексу, используется следующая функция:
где s - строка, n - индекс, а c - символ.
источник
Я написал этот метод для замены символов или замены строк в определенном экземпляре. экземпляры начинаются с 0 (это можно легко изменить на 1, если вы измените необязательный аргумент inst на 1, а переменную test_instance на 1.
источник
Ты можешь сделать это:
источник
names = ["Джои Триббиани", "Моника Геллер", "Чендлер Бинг", "Фиби Буффей"]
имена пользователей = []
o, p Joey_Tribbiani Monica_Geller Chandler_Bing Phoebe_Buffay
источник