2015-02-10 1 views
-3

Как преобразовать конкретную букву в строку, т. Е. Все a s в 'ahdhkhkahfkahafafkh' в верхний регистр?Преобразование определенного символа в строку в верхний регистр

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

+0

использование 'str.replace'. – Kevin

ответ

1
>>> a = 'ahdhkhkahfkahafafkh' 
>>> "".join(i.upper() if i == 'a' else i for i in a) 
'AhdhkhkAhfkAhAfAfkh' 

Или

>>> a.replace('a',"A") 
'AhdhkhkAhfkAhAfAfkh' 
7

Вы можете использовать str.translate с string.maketrans:

>>> import string 
>>> table = string.maketrans('a', 'A') 
>>> 'abcdefgahajkl'.translate(table) 
'AbcdefgAhAjkl' 

Это действительно сияет, если вы хотите заменить 'a' и 'b' с их прописной версией ... то вы просто изменить таблицу преобразования:

table = string.maketrans('ab', 'AB') 

Или вы можете использовать str.replace, если вы действительно делаете обмен только на 1 для 1:

>>> 'abcdefgahajkl'.replace('a', 'A') 
'AbcdefgAhAjkl' 

Этот метод светится, когда у вас есть только одна замена. Он заменяет подстроки, а не символы, поэтому 'Bat'.replace('Ba', 'Cas') ->'Cast'.

+0

yes +1000000000, если бы я мог :) –

+1

Почему это лучше, чем .replace()? – thumbtackthief

+0

Спасибо! У меня была функция замены, я просто не использовал часть «a», «A»! –