我想要将字符串的首字母大写。该字符串将是哈希(因此大部分是数字),因此string.title()
将无法使用,因为像85033ba6c
这样的字符串将被更改为85033Ba6C
,而不是85033Ba6c
,因为数字会分隔单词,混淆了title()
。我想要将字符串中的第一个字母大写,无论该字母在字符串中的位置如何。是否有此功能的函数?
我想要将字符串的首字母大写。该字符串将是哈希(因此大部分是数字),因此string.title()
将无法使用,因为像85033ba6c
这样的字符串将被更改为85033Ba6C
,而不是85033Ba6c
,因为数字会分隔单词,混淆了title()
。我想要将字符串中的第一个字母大写,无论该字母在字符串中的位置如何。是否有此功能的函数?
使用 re.sub
和 count
:
>>> strs = '85033ba6c'
>>> re.sub(r'[A-Za-z]',lambda m:m.group(0).upper(),strs,1)
'85033Ba6c'
count
。非常好! - georg本答案假设字符串中至少有一个字符,其中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:]))
在这里,我挑选出字符串中第一个字母字符的字符(和索引)。将该字符转换为大写字符,并将其与字符串的其余部分连接起来。