怎么将一个字母转为大写,例如将wiki变为wIkI?
我想知道怎么把一个单词里的某个字母变成大写。比如说,把“wiki”变成“wIkI”。我知道怎么把整个单词变成大写,但我只想把其中一个字母变成大写。
3 个回答
0
也许是:
a = 'text'
b = ('t', 'x')
print ''.join(x.upper() if x in b else x for x in a)
0
如果只是 "i",你可以这样做:
string = string.replace('i','I')
或者,如果有更多的字母,可以试试这样:
letters = ['a','b','c','d','e','f']
string = 'acgfdb'
for l in letters:
string = string.replace(l.lower(),l.upper())
好的,根据你的评论,你还想要从用户那里获取输入,那就试试这个吧……
string = raw_input('Enter a word: ')
letter = raw_input('Enter the letter to change to capital: ')
while len(letter) != 1:
print 'enter a single letter'
letter = raw_input('Enter the letter to change: ')
string = string.replace(l.lower(),l.upper())
print string
1
为什么不直接用 str.replace
呢?
word = 'wiki'
letter = 'i'
print word.replace(letter,letter.upper())
你也可以用 string.maketrans
和 str.translate
来做同样的事情,只是需要稍微多花点力气。
import string
trans = string.maketrans(letter,letter.upper())
print word.translate(trans)
后面这种方法如果你反复使用同一个翻译表,可能会更高效,但除非你在一个非常紧凑的循环中使用,否则你可能感觉不到运行时间的差别。后面这种方法在做几个替换时也很方便。例如,如果你想把所有的元音字母变成大写,可以这样做:
trans = string.maketrans('aeiou','AEIOU')