2013-03-03 6 views
0

Следуя документации Python для string.replace, я пытаюсь заменить строку, например «843845ab38». Как я могу сделать string.replace (old, new) только замену первого совпадения?String.replace() Python удалить первое совпадение

пример:

a="843845ab38" 
a.replace("8","") 
print a 

Решение, которое я искал это "43845ab38", заменив первую 8 пробелом.

+5

Это описано в документации. Пожалуйста, внимательно прочитайте его перед публикацией. http://docs.python.org/2/library/string.html#string.replace –

ответ

11

str.replace() занимает 3-й аргумент, называется граф:

a.replace("8", "", 1) 

Передавая 1 как кол замещается только первый вхождение в '8':

>>> a = "843845ab38" 
>>> a.replace("8", "", 1) 
'43845ab38' 
-1

Вы не имеете использовать функцию замены. Просто а [1:] будет достаточно однако, если вы хотите заменить все «8» ы , то вы можете использовать заменить

+0

И как он знает, что первые 8 находятся в положении 0? – Hyperboreus

+0

Я думаю, пользователь1350772 сказал что-то вроде этого .. «Решение, которое я ищу, это« 43845ab38 », заменив первые 8 пробелом». – LonelySoul

+0

Да, первое появление цифры 8. Это не значит, что оно происходит в позиции 0 ... – Hyperboreus

Смежные вопросы