更改字符串的大小写

Python 的字符串类型提供了许多作用于字符串大写的函数。这些包括 :

  • str.casefold
  • str.upper
  • str.lower
  • str.capitalize
  • str.title
  • str.swapcase

使用 unicode 字符串(Python 3 中的默认值),这些操作不是 1:1 映射或可逆。这些操作中的大多数用于显示目的,而不是标准化。

Python 3.x >= 3.3

str.casefold()

str.casefold 创建一个小写字符串,适用于不区分大小写的比较。这比 str.lower 更具侵略性,并且可能修改已经是小写的字符串或导致字符串长度增长,并且不用于显示目的。

"XßΣ".casefold()
# 'xssσ'

"XßΣ".lower()
# 'xßς'

在案例折叠下发生的转换由其网站上的 CaseFolding.txt 文件中的 Unicode Consortium 定义。

str.upper()

str.upper 接受字符串中的每个字符并将其转换为大写等效字符,例如:

"This is a 'string'.".upper()
# "THIS IS A 'STRING'."

str.lower()

str.lower 恰恰相反; 它接受字符串中的每个字符并将其转换为小写的等效字符:

"This IS a 'string'.".lower()
# "this is a 'string'."

str.capitalize()

str.capitalize 返回字符串的大写版本,也就是说,它使第一个字符大写,其余字符小写:

"this Is A 'String'.".capitalize() # Capitalizes the first character and lowercases all others
# "This is a 'string'."

str.title()

str.title 返回字符串的标题版本,也就是说,单词开头的每个字母都是大写的,所有其他字母都是小写的:

"this Is a 'String'".title()
# "This Is A 'String'"

str.swapcase()

str.swapcase 返回一个新的字符串对象,其中所有小写字符都交换为大写字母,所有大写字符都交换为较低字符串:

"this iS A STRiNG".swapcase() #Swaps case of each character
# "THIS Is a strIng"

用作 str 类方法

值得注意的是,这些方法可以在字符串对象上调用(如上所示),也可以作为 str 类的类方法调用(显式调用 str.upper 等)

str.upper("This is a 'string'")
# "THIS IS A 'STRING'"

当将这些方法之一同时应用于许多字符串时,例如 map 函数,这是最有用的。

map(str.upper,["These","are","some","'strings'"])
# ['THESE', 'ARE', 'SOME', "'STRINGS'"]