【问题标题】:Python function to convert camelCase to Sentence CasePython函数将camelCase转换为Sentence Case
【发布时间】:2022-01-23 09:31:32
【问题描述】:

我想将我的 camelCaseSentence 转换为 Sentence Case。

例子:

字符串:'sarimChaudharyIsMyName'

所以这个的输出应该是……

字符串:'Sarim Chaudhary 是我的名字'

【问题讨论】:

  • 在我看来像标题大小写

标签: python python-3.x string


【解决方案1】:

这是一个使用title() 函数帮助的简单正则表达式方法:

inp = 'sarimChaudharyIsMyName'
output = re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', inp).title()
print(output)  # Sarim Chaudhary Is My Name

我们可以通过避免title() 调用来稍微提高性能,而只是将第一个字符大写:

inp = 'sarimChaudharyIsMyName'
output = re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', inp)
output = output[0].upper() + output[1:]
print(output)  # Sarim Chaudhary Is My Name

【讨论】:

  • 在效率方面,在sub之后调用title需要再次读取整个字符串。我想单独处理第一个字符的大小写应该会更好。
  • @mozway 好点,我也添加了你的版本。
  • 一些测试表明title 大约需要 10% 的时间,您的第二个版本要快约 10%。在所有情况下优化不一定重要,但最好注意;)
【解决方案2】:
def camel_to_Sentence_Case(a):
    temp = a[0].upper()
    for i in a[1:]:
        if i.isupper():
            temp+= ' '+i
        else:
            temp+=i
    
    return temp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2013-10-03
    • 2022-07-08
    • 1970-01-01
    • 2019-12-24
    • 2010-11-13
    相关资源
    最近更新 更多