首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >str.capitalize()和str.title()之间有什么区别吗?

问str.capitalize()和str.title()之间有什么区别吗?
EN

Stack Overflow用户
提问于 2019-12-18 03:01:51
回答 3查看 6.4K关注 0票数 11

str.title()和str.capitalize()之间有什么区别吗?我从docs那里得到的理解是,这两种方法都用一个单词的第一个字母大写,并使其余的字母小写。有没有人遇到过不能互换使用的情况?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-18 03:06:12

title()更改了每个单词,但capitalize()只更改了句子中的第一个单词:

代码语言:javascript
复制
>>> a = 'silly question'
>>> a.title()
'Silly Question'
>>> a.capitalize()
'Silly question'
>>> 
票数 19
EN

Stack Overflow用户

发布于 2019-12-18 03:06:00

是的,有区别。2,实际上。

  1. 在str.title()中,单词中包含撇号,撇号后面的字母将被大写。
  2. str.title()大写一个句子的每个单词,而str.capitalize()大写的只是整个字符串的第一个单词。

从医生那里:

str.title() 返回以标题为标题的字符串版本,其中单词以大写字符开头,其余字符为小写。 例如:“你好世界”。标题()“你好世界” 该算法使用了一个简单的语言无关的定义,将一个单词定义为连续字母组。这一定义在许多情况下都有效,但它意味着缩略语和所有格中的撇号形成了单词边界,这可能不是期望的结果:

票数 5
EN

Stack Overflow用户

发布于 2020-05-03 15:55:14

我会用一个例子来解释这个区别:

假设您有一个字符串,str1 = 'a b 2w',并且您希望大写所有的第一个字符,但是如果第一个字符是一个数字,那么您不想改变。期望输出-> A B 2w

如果您执行str1.title(),它将导致此-> A B 2W,而str1.capitalize()将给出以下结果-> A b 2w

要获得预期的结果,您必须这样做:

对于str1.split()中的x:

代码语言:javascript
复制
str1 = str1.replace(x, x.capitalize()) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59384880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档