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

新手上路,请多包涵
s = 'the brown fox'

…在这里做点什么…

s 应该是:

 'The Brown Fox'

最简单的方法是什么?

原文由 TIMEX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 326
2 个回答

字符串的 .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"

原文由 Mark Rushakoff 发布,翻译遵循 CC BY-SA 4.0 许可协议

.title() 方法不能正常工作,

 >>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"

尝试 string.capwords() 方法,

 import string
string.capwords("they're bill's friends from the UK")
>>>"They're Bill's Friends From The Uk"

来自 关于 capwords 的 Python 文档

使用 str.split() 将参数拆分为单词,使用 str.capitalize() 将每个单词大写,然后使用 str.join() 连接大写单词。如果可选的第二个参数 sep 不存在或为 None,则空白字符的运行将替换为单个空格,并删除前导和尾随的空格,否则 sep 用于拆分和连接单词。

原文由 Chen Houwu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题