2014-11-16 4 views
1

Мне нужно создать код, который заменит один символ/букву из строки.Замена одного символа в строке

Пример, который я получил это:

string_substituting_char('abcdeeaa', 'c') 

Если вернуться:

'ab$deeaa' 

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

def string_substituting_char (st, ch): 
    for ch in st: 
     st = st.replace(ch, '$') 
    return st 

код, что я и использовал (он заменяет все символы)

Я хочу знать, что должно быть добавлено в код, чтобы он менял только один конкретный символ из строки.

ответ

1

Просто возвращает результат вызова str.replace:

def string_substituting_char(st, ch): 
    return st.replace(ch, '$') 

Демо:

>>> def string_substituting_char(st, ch): 
...  return st.replace(ch, '$') 
... 
>>> string_substituting_char('abcdeeaa', 'c') 
'ab$deeaa' 
>>> 

Или, если вы хотите заменить только первое вхождение символа, вы можете передать 1 в параметр count:

def string_substituting_char(st, ch): 
    return st.replace(ch, '$', 1) 

Демонстрация:

>>> def string_substituting_char(st, ch): 
...  return st.replace(ch, '$', 1) 
... 
>>> string_substituting_char('abcabc', 'c') 
'ab$abc' 
>>> 
0

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

>>> def string_substituting_char (st, ch): 
...  return st.replace(ch, '$') 
... 
>>> string_substituting_char('abccdefccsfdds', 'c') 
'ab$$def$$sfdds' 
0

Использование регулярных выражений

import re 

def string_sub (str, ch): 
    return "$".join(re.findall("[^" + ch + "]+", str)) 

Demo:

>>> string_sub("ello this is aea sa s as", "e") 
'$llo this is a$a sa s as' 
Смежные вопросы