HOWTO · Python

Comparación de cadenas sin distinción de mayúsculas y minúsculas en Python

Hay tres métodos principales utilizados para llevar a cabo la comparación de cadenas sin distinción de mayúsculas y minúsculas en Python, que son lower(), upper() y casefold().

En esta página

Este tutorial discutirá algunos métodos para hacer una comparación insensible a mayúsculas y minúsculas de dos o más variables de cadena en Python.

Comparación de cadenas sin distinción de mayúsculas y minúsculas con el método lower()

La cadena de Python tiene un método incorporado lower() que convierte todos los caracteres de la cadena a minúsculas. Devuelve una cadena con todos los caracteres convertidos a minúsculas. Podemos convertir dos cadenas a minúsculas con el método lower() y luego compararlas sin distinción de mayúsculas.

normal_str1 = "Hello World!"
lower_str1 = normal_str1.lower()
print(lower_str1)

Producción :

hello world!

Ahora haz lo mismo con la segunda variable de cadena normal_str2.

normal_str2 = "HELLO WORLD!"
lower_str2 = normal_str2.lower()
print(lower_str2)

Resultado:

hello world!

Como podemos ver, ambas cadenas han sido convertidas a todos los caracteres en minúsculas. El siguiente paso es comparar ambas variables de cadena y mostrar la salida.

normal_str1 = "Hello World!"
lower_str1 = normal_str1.lower()
normal_str2 = "HELLO WORLD!"
lower_str2 = normal_str2.lower()

if lower_str1 == lower_str2:
    print("Both variables are equal")
else:
    print("Both variables are not equal")

Producción :

Both variables are equal

Comparación de cadenas sin distinción de mayúsculas y minúsculas con el método upper()

La última sesión ha introducido cómo llevar a cabo la comparación de cadenas sin distinción de mayúsculas y minúsculas utilizando el método lower(). La lógica detrás de usar el método upper() es la misma. Queremos cambiar las variables de cadena existentes en caracteres mayúsculos o minúsculos en ambos métodos. El método upper() es el método incorporado en la clase string para convertir todos los caracteres de una variable string a mayúsculas.

normal_str1 = "Hello World!"
upper_str1 = normal_str1.upper()

normal_str2 = "hello world!"
upper_str2 = normal_str2.upper()

if upper_str1 == upper_str2:
    print("Both variables are equal")
else:
    print("Both variables are not equal")

Producción :

Both variables are equal

Comparación de cadenas sin distinción de mayúsculas y minúsculas con el método casefold()

El método casefold() es un método más agresivo para convertir una variable de cadena a caracteres en minúsculas. Por ejemplo,

Hay una letra alemana, 'ß' que ya es una letra minúscula. Por tanto, el método lower() no hace nada con 'ß'. Pero casefold() convierte 'ß' en "ss".

normal_str = "ß"
casefold_str = normal_str.casefold()
lower_str = normal_str.lower()
print("Case folded form of ß is : " + casefold_str)
print("Lower cased form of ß is : " + lower_str)

Producción :

Case folded form of ß is : ss
Lower cased form of ß is : ß

El método casefold() devuelve una variable de cadena en la que todos los caracteres se convierten agresivamente en minúsculas. Esta nueva variable de cadena puede entonces ser comparada para llevar a cabo una comparación insensible a mayúsculas y minúsculas.

normal_str1 = "Hello World ß!"
casefold_str1 = normal_str1.casefold()

normal_str2 = "Hello World ss!"
casefold_str2 = normal_str2.casefold()

if casefold_str1 == casefold_str2:
    print("Both variables are equal")
else:
    print("Both variables are not equal")

Producción :

Both variables are equal