我想将字符串中的第一个字母大写。该字符串将是一个哈希值(因此主要是数字),因此string.title()
将不起作用,因为85033ba6c
之类的字符串将更改为85033Ba6C
,而不是85033Ba6c
,因为这个数字分隔了单词,令人困惑title()
。我想把字符串的第一个字母大写,不管字母到字符串有多远。这有功能吗?
答案 0 :(得分:10)
将re.sub
与count
一起使用:
>>> strs = '85033ba6c'
>>> re.sub(r'[A-Za-z]',lambda m:m.group(0).upper(),strs,1)
'85033Ba6c'
答案 1 :(得分:6)
在此答案中假设字符串中至少有一个字符isalpha
将返回True
(否则,这会引发StopIteration
)
i,letter = next(x for x in enumerate(myhash) if x[1].isalpha())
new_string = ''.join((myhash[:i],letter.upper(),myhash[i+1:]))
在这里,我挑选出字符串中第一个字母字符的字符(和索引)。我将该字符转换为大写字符,然后将其加入字符串的其余部分。