如何将字符串中每个单词的首字母大写(Python)?

如何将字符串中每个单词的首字母大写(Python)?

s = 'the brown fox'

......在这里做点什么......

s 应该 :

'The Brown Fox'

最简单的方法是什么?


qq_花开花谢_0
浏览 5530回答 3
3回答

GCT1015

.title()字符串的方法(ASCII或Unicode很好)这样做:>>> "hello world".title()'Hello World'>>> u"hello world".title()u'Hello World'但是,请注意带有嵌入式撇号的字符串,如文档中所述。该算法使用简单的与语言无关的单词定义作为连续字母组。该定义在许多情况下起作用,但它意味着收缩和占有的撇号形成单词边界,这可能不是所希望的结果:>>> "they're bill's friends from the UK".title()"They'Re Bill'S Friends From The Uk"

蝴蝶不菲

仅仅因为这种事情对我来说很有趣,这里还有两个解决方案。分成单词,从分组中初始化每个单词,然后重新加入。这将改变将单词分隔成单个空白区域的空白区域,无论它是什么。s = 'the brown fox'lst = [word[0].upper() + word[1:] for word in s.split()]s = " ".join(lst)编辑:当我编写上面的代码时,我不记得我在想什么,但是没有必要建立一个明确的列表; 我们可以使用生成器表达式以懒惰的方式执行它。所以这是一个更好的解决方案:s = 'the brown fox's = ' '.join(word[0].upper() + word[1:] for word in s.split())使用正则表达式匹配字符串的开头,或分隔单词的空格,以及单个非空白字符; 使用括号标记“匹配组”。编写一个带有匹配对象的函数,并返回未更改的空白匹配组和以大写字母表示的非空白字符匹配组。然后re.sub()用来替换图案。这个没有第一个解决方案的标点符号问题,也不像我的第一个解决方案那样重做白色空间。这个产生最好的结果。import re s = 'the brown fox'def repl_func(m):     """process regular expression match groups for word upper-casing problem"""     return m.group(1) + m.group(2).upper()s = re.sub("(^|\s)(\S)", repl_func, s)>>> re.sub("(^|\s)(\S)", repl_func, s)"They're Bill's Friends From The UK"我很高兴我研究了这个答案。我不知道re.sub()可以采取功能!您可以在内部re.sub()进行非平凡处理以产生最终结果!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python