关于python:如果第一个字符不是字母,则在字符串中大写第一个字母?

Capitalize first letter in string if first character is not letter?

本问题已经有最佳答案,请猛点这里访问。

我想把字符串中的第一个字母大写。字符串将是一个散列(因此大部分是数字),因此string.title()将不起作用,因为像85033ba6c这样的字符串将更改为85033ba6c,而不是85033ba6c,因为数字分隔单词,使title()混淆。我想把一个字符串的第一个字母大写,不管这个字母到字符串有多远。有这个功能吗?


使用re.subcount时:

1
2
3
>>> strs = '85033ba6c'
>>> re.sub(r'[A-Za-z]',lambda m:m.group(0).upper(),strs,1)
'85033Ba6c'


在这个答案中,假设字符串中至少有一个字符,其中isalpha将返回True(否则,将引发StopIteration)

1
2
i,letter = next(x for x in enumerate(myhash) if x[1].isalpha())
new_string = ''.join((myhash[:i],letter.upper(),myhash[i+1:]))

在这里,我挑选出字符串中第一个字母字符的字符(和索引)。我把这个字符转换成一个大写字符,然后用它连接字符串的其余部分。