str.title()和str.capitalize()之间有什么区别吗?我从docs那里得到的理解是,这两种方法都用一个单词的第一个字母大写,并使其余的字母小写。有没有人遇到过不能互换使用的情况?
发布于 2019-12-18 03:06:12
title()更改了每个单词,但capitalize()只更改了句子中的第一个单词:
>>> a = 'silly question'
>>> a.title()
'Silly Question'
>>> a.capitalize()
'Silly question'
>>> 发布于 2019-12-18 03:06:00
是的,有区别。2,实际上。
str.title()中,单词中包含撇号,撇号后面的字母将被大写。str.title()大写一个句子的每个单词,而str.capitalize()大写的只是整个字符串的第一个单词。
str.title()返回以标题为标题的字符串版本,其中单词以大写字符开头,其余字符为小写。 例如:“你好世界”。标题()“你好世界” 该算法使用了一个简单的语言无关的定义,将一个单词定义为连续字母组。这一定义在许多情况下都有效,但它意味着缩略语和所有格中的撇号形成了单词边界,这可能不是期望的结果:
发布于 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:
str1 = str1.replace(x, x.capitalize()) https://stackoverflow.com/questions/59384880
复制相似问题