Как заменить первый символ в строке, используя python? - PullRequest
3 голосов
/ 05 апреля 2019

Как заменить один первый символ в строке, используя python?

string = "11234"
translation_table = str.maketrans({'1': 'I'})
output= (string.translate(translation_table))
print(output)

Ожидаемый результат:

I1234

Фактический выход:

11234

Ответы [ 3 ]

2 голосов
/ 05 апреля 2019

В Python строки являются неизменяемыми, то есть вы не можете назначать индексы или модифицировать символ по определенному индексу.Используйте взамен str.replace () .Вот заголовок функции

str.replace(old, new[, count])

Эта встроенная функция возвращает копию строки со всеми вхождениями подстроки old , замененной на new .Если задан необязательный аргумент count , заменяются только первые вхождения количества.

Если вы не хотите использовать str.replace(), вы можете сделать это вручную, воспользовавшись преимуществом объединения.

def manual_replace(s, char, index):
    return s[:index] + char + s[index +1:]

string = '11234'
print(manual_replace(string, 'I', 0))

Выход

I1234

1 голос
/ 05 апреля 2019

Вы можете использовать re (regex) и использовать функцию sub, первый параметр - это то, что вы хотите заменить, а второй - это то, что вы хотите заменить, третий - строка, четвертыйэто число, поэтому я говорю 1, потому что вам нужен только первый:

>>> import re
>>> string = "11234"
>>> re.sub('1', 'I', string, 1)
'I1234'
>>> 

Это практически просто:

re.sub('1', 'I', string, 1)
0 голосов
/ 05 апреля 2019

Я не уверен, что вы хотите достичь, но, похоже, вы просто хотите заменить '1' на 'I' только один раз, поэтому попробуйте следующее:

string = "11234"
string.replace('1', 'I', 1)

str.replace занимает3 параметра old, new и count (необязательно).count указывает, сколько раз вы хотите заменить подстроку old подстрокой new.

...