如何在 Python 中将字符串转换为小写

Python lower

一般用lower()方法将字符串转换为小写

"Kilometer".lower()

'kilometers'Code language: JavaScript (javascript)

如果目的是进行不区分大小写的匹配,则应使用casefold

>>> 'Kilometers'.casefold()
'kilometers'Code language: JavaScript (javascript)

原因如下:

>>> "Maße".casefold()
'masse'
>>> "Maße".lower()
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower() == "Maße".lower()
False
>>> "MASSE".casefold() == "Maße".casefold()
TrueCode language: PHP (php)

使用 Unicode 文字,而不是str文字

所以我们需要一个unicode字符串来处理这个转换,用一个 unicode 字符串文字轻松完成,它用u前缀消除歧义(注意u前缀也适用于 Python 3):

>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километрCode language: PHP (php)

如果只有 str形式 的a,需要将它转换为unicode. Python 的 Unicode 类型是一种通用编码格式,相对于大多数其他编码具有许多优点。可以使用带有编解码器的unicode构造函数或str.decode方法将str转换为unicode:

>>> unicode_from_string = unicode(string, 'utf-8') # "encoding" unicode from string
>>> print(unicode_from_string.lower())
километр
>>> string_to_unicode = string.decode('utf-8') 
>>> print(string_to_unicode.lower())
километр
>>> unicode_from_string == string_to_unicode == unicode_literal
TrueCode language: PHP (php)

Python2中可以使用decode

对于 Python 2,这不适用于 UTF-8 中的非英语单词。在这种情况下decode('utf-8')可以帮助:

>>> s='Километр'
>>> print s.lower()
Километр
>>> print s.decode('utf-8').lower()
километрCode language: PHP (php)

发表评论