2015-04-08 8 views
0

Итак, чтобы вернуть копию строки, преобразованной в строчную или прописную, очевидно, использует lower() или upper().Преобразование конкретных букв в верхний или нижний регистр в python

Но как можно сделать копию строки с конкретных буквы, преобразованные в верхний или нижний регистр. Например, как бы я конвертировать 'test' в 'TesT'

это честно озадачивает меня так помощь высоко оценили

получил, спасибо за помощь Cyber ​​и Мэтт!

+0

Можете ли вы уточнить, что вы имеете в виду ** конкретного л **? потому что на основе вашего определения у него может быть много ответа !!! – Kasramvd

+0

Если один из ответов помог решить вашу проблему, рассмотрите [принятие] (http://stackoverflow.com/help/accepted-answer), нажав на галочку рядом с ним. Он оценивает ваш вопрос так же, как и ваше текущее удовлетворение, и награждает [очки репутации] (http://stackoverflow.com/help/whats-reputation) как для вас, так и для ответчика. – MattDMo

ответ

1

Существует один очевидное решение, нарежьте строку и верхние части, которые вы хотите:

test = 'test' 
test = test[0].upper() + test[1:-1] + test[-1].upper() 
+0

ах я вижу. да, конечно, я мог бы использовать этот метод. – Muffen

+0

, только если вы уже знаете позиции букв для изменения. Это не является надежным для произвольных строк ... – MattDMo

+0

но ... должен быть какой-то способ сделать это без нарезки – Muffen

0
import re 
input = 'test' 
change_to_upper = 't' 
input = re.sub(change_to_upper, change_to_upper.upper(), input) 

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

4

Если вы просто хотите, чтобы заменить конкретные буквы:

>>> s = "test" 
>>> s.replace("t", "T") 
'TesT' 
+0

И здесь я всегда использую регулярные выражения для замены букв. Спасибо за этот совет! – RNikoopour

0

В общем виде, чтобы заменить все письма с чем-то еще

>>> swaps = {'t':'T', 'd':'D'} 
>>> ''.join(swaps.get(i,i) for i in 'dictionary') 
'DicTionary' 
1

Вы можете использовать метод str.translate():

import string 

# Letters that should be upper-cased 
letters = "tzqryp" 
table = string.maketrans(letters, letters.upper()) 


word = "test" 
print word.translate(table) 
0

Я бы использовал перевод().

Для python2:

>>> from string import maketrans 
>>> "test".translate(maketrans("bfty", "BFTY")) 
'TesT' 

И Python3:

>>> "test".translate(str.maketrans("bfty", "BFTY")) 
'TesT' 

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

  • Нет связанных вопросов^_^