Python中字符串转换为小写的方法

Python中字符串转换为小写的方法

技术背景

在Python编程中,经常需要对字符串进行大小写转换操作。将字符串转换为小写是一种常见的需求,例如在进行字符串比较时,为了实现不区分大小写的匹配,就需要先将字符串统一转换为小写。

实现步骤

使用str.lower()方法

这是最常用的方法,适用于大多数情况。

1
2
3
string = "Kilometers"
lowercase_string = string.lower()
print(lowercase_string) # 输出: kilometers

使用str.casefold()方法

对于需要进行更复杂的大小写不敏感匹配的场景,推荐使用casefold()方法。它比lower()方法更强大,能处理更多特殊字符。

1
2
3
string = "Maße"
casefolded_string = string.casefold()
print(casefolded_string) # 输出: masse

Python 2中处理非ASCII字符

在Python 2中,普通字符串字面量是字节串,处理非ASCII字符时需要先将其解码为Unicode字符串。

1
2
3
4
5
# Python 2代码
string = 'Километр'
unicode_string = string.decode('utf-8')
lowercase_string = unicode_string.lower()
print(lowercase_string) # 输出: километр

转换列表中的字符串为小写

可以使用map()函数将列表中的所有字符串转换为小写。

1
2
3
list_of_strings = ['CamelCase', 'in', 'Python']
lowercase_list = list(map(str.lower, list_of_strings))
print(lowercase_list) # 输出: ['camelcase', 'in', 'python']

部分字符转换为小写

使用str.translate()str.maketrans()的组合可以将部分字符转换为小写。

1
2
3
s = 'ABC ABC'
s = s.translate(str.maketrans('AC', 'ac'))
print(s) # 输出: aBc aBc

核心代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 使用str.lower()
string = "Kilometers"
print(string.lower()) # 输出: kilometers

# 使用str.casefold()
string = "Maße"
print(string.casefold()) # 输出: masse

# Python 2处理非ASCII字符
# string = 'Километр'
# print(string.decode('utf-8').lower())

# 转换列表中的字符串为小写
list_of_strings = ['CamelCase', 'in', 'Python']
print(list(map(str.lower, list_of_strings))) # 输出: ['camelcase', 'in', 'python']

# 部分字符转换为小写
s = 'ABC ABC'
s = s.translate(str.maketrans('AC', 'ac'))
print(s) # 输出: aBc aBc

最佳实践

  • 始终使用Unicode字符串进行文本处理。软件内部应只处理Unicode字符串,在输出时再转换为特定的编码。
  • 对于简单的小写转换,使用str.lower()方法。
  • 对于需要进行大小写不敏感匹配的场景,使用str.casefold()方法。

常见问题

str.lower()方法的局限性

str.lower()方法在处理某些特殊字符时可能无法达到预期效果,例如在某些非ASCII字符的转换上。此时可以考虑使用str.casefold()方法。

Python 2和Python 3的差异

在Python 2中,普通字符串字面量是字节串,处理非ASCII字符时需要先解码为Unicode字符串;而在Python 3中,普通字符串字面量就是Unicode字符串,不需要进行额外的解码操作。


Python中字符串转换为小写的方法
https://119291.xyz/posts/2025-04-14.python-string-lowercase-conversion/
作者
ww
发布于
2025年4月14日
许可协议