Cómo convertir una cadena en minúsculas en Python 2 y 3
Convertir cadena a minúsculas en Python 3
El tipo str
ya que Python 3.0 contiene por defecto caracteres Unicode
, lo que significa que cualquier cadena como "unicode example"
, 'unicode example 2'
se almacena como Unicode
.
Por lo tanto, puedes usar str.lower()
para convertir cualquier cadena a minúsculas en Python 3.
exampleString = "CaseString"
exampleString.lower()
# Out: 'casestring'
exampleString = "СтрокаСлучая"
exampleString.lower()
# Out: 'строкаслучая'
str.casefold()
conversión sin mayúsculas y minúsculas
str.lower()
convierte la cadena a minúsculas, pero no convierte las diferencias entre mayúsculas y minúsculas en la cadena.
Por ejemplo, ß
en alemán es igual a doble s
- ss
, y ß
ya está en minúsculas, por lo tanto, str.lower()
no lo convertirá.
Pero str.casefold()
convertirá ß
en ss
.
>>> 'Straße'.lower()
'straße'
>>> 'Straße'.casefold()
'strasse'
Convertir cadena a minúsculas en Python 2.7
El tipo str
en Python 2.7 no se almacena como Unicode
, y las cadenas Unicode
son instancias del tipo unicode
. Debemos distinguir si la cadena es una cadena ASCII
o unicode
cuando la convertimos a minúsculas.
Tipo ASCII
Lo mismo ocurre con el método utilizado en Python 3. str.lower()
convierte la cadena a minúsculas.
exampleString = "CaseStringExample"
exampleString.lower()
# Out: 'casestringexample'
Tipo unicode
Si los caracteres de la cadena son de tipo Unicode
, y la cadena no se representa explícitamente en el tipo Unicode
, el método str.lower()
no convierte la cadena a minúsculas en absoluto.
# python 2.x
exampleString = "СтрокаСлучая"
print exampleString.lower()
#Out: СтрокаСлучая
exampleString.lower() == exampleString
#Out: True
Los objetos de Python a bytes no ASCII en una cadena sin codificación dada porque la codificación pretendida está implícita.
Usando literales Unicode
pero no str
exampleUnicodeString = u"СтрокаСлучая"
exampleUnicode
# u'\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0443\u0447\u0430\u044f'
exampleUnicodeString.lower()
# u'\u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043b\u0443\u0447\u0430\u044f'
print exampleUnicodeString.lower()
# Out: строкаслучая
Aquí se puede ver que el primer carácter de la cadena se convierte de \u0421
a \u0441
.
Convierte una str
a unicode
Si la cadena dada tiene la forma de str
, necesitamos primero convertirla a Unicode
antes de la conversión a minúsculas.
exampleString = "СтрокаСлучая"
print exampleString.decode("utf-8").lower()
# Out: строкаслучая
Conclusión
El método lower()
es el método para convertir string a minúsculas tanto en Python 2 como en 3, pero con una diferencia notable.
string en Python 3 es la cadena unicode
por defecto, pero string en Python 2 no lo es. Si la cadena no se representa explícitamente como de tipo unicode
, por ejemplo no poniendo u
antes de la cadena, la cadena del unicode no se convertirá en minúsculas en absoluto.
str.casefold
convierte las distinciones de mayúsculas y minúsculas a sus coincidencias sin mayúsculas, pero sólo está disponible en Python 3. Puedes instalar py2casefold en Python 2.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook