Comparar cadenas en Python es una tarea de pro­gra­ma­ción habitual en el día a día, que se utiliza para in­te­r­pre­tar entradas de usuario, comprobar enormes conjuntos de datos o trabajar con pro­to­co­los basados en texto. Te mo­s­tra­re­mos varias formas de comparar cadenas en Python y te daremos ejemplos muy fáciles de entender.

Ope­ra­do­res y funciones para comparar cadenas en Python

Python pro­po­r­cio­na a los usuarios todo un conjunto de ope­ra­do­res de co­m­pa­ra­ción de cadenas y funciones pre­co­n­s­trui­das que hacen que comparar cadenas sea fácil y rápido. Primero veremos los ope­ra­do­res de co­m­pa­ra­ción y luego los métodos de co­m­pa­ra­ción. A co­n­ti­nua­ción, veremos dos ejemplos de código para mostrarte cómo funcionan los ope­ra­do­res y los métodos.

Ope­ra­do­res co­m­pa­ra­ti­vos

La forma más sencilla de comparar dos cadenas en Python es con los ope­ra­do­res de Python. Al igual que con los números enteros o de coma flotante, se pueden utilizar ope­ra­do­res co­m­pa­ra­ti­vos para comprobar que las cadenas son iguales. Sin embargo, los ope­ra­do­res en este contexto no funcionan como con los números, ya que hay varias pro­pie­da­des de las cadenas que se pueden comparar. La tabla siguiente ofrece una visión general de los ope­ra­do­res de co­m­pa­ra­ción y sus funciones.

Operador De­s­cri­p­ción Ejemplo Valor de retorno
== Las cadenas son iguales "Hello" == "hello" false
!= Las cadenas no son iguales "Hello" != "hello" true
< orden le­xi­co­grá­fi­co menor "Australia" < "Zimbabwe" true
> orden le­xi­co­grá­fi­co mayor "Australia" > "Zimbabwe" false
<= orden le­xi­co­grá­fi­co menor o igual que "Germany" <= "United States" false
>= orden le­xi­co­grá­fi­co mayor o igual que "Germany" <= "Germany" true

Aquí, “orden le­xi­co­grá­fi­co” es el término técnico para “orden al­fa­bé­ti­co” y significa lo mismo. Las palabras con un orden le­xi­co­grá­fi­co menor aparecen antes en el alfabeto que las palabras con un orden le­xi­co­grá­fi­co mayor. Así, la cadena “abcd” tiene un orden le­xi­co­grá­fi­co inferior que la cadena “xyz”.

Los espacios vacíos en las cadenas tienen el orden le­xi­co­grá­fi­co más bajo de todos los ca­ra­c­te­res. Por tanto, si tomas los primeros ca­ra­c­te­res de una cadena como subcadena de Python, esa subcadena siempre tendrá un orden inferior al de la cadena original. Por ejemplo, la cadena “Alex” tiene un orden le­xi­co­grá­fi­co inferior que la cadena “Alexander”.

Recuerda que el orden le­xi­co­grá­fi­co de Python no siempre coincide con el orden al­fa­bé­ti­co habitual. Por ejemplo, Python evalúa la expresión “a < b” como “true”, pero la expresión “a < B” como “false”. Esto se debe a que, tanto en el estándar ASCII como en el Unicode, las letras ma­yú­s­cu­las siempre se codifican con valores más bajos que las mi­nú­s­cu­las.

Nota

Además de comparar cadenas, dar formato a los textos es una parte im­po­r­ta­n­te de la pro­gra­ma­ción. En nuestro artículo sobre los métodos de formato de las cadenas en Python, exa­mi­na­mos los métodos y ope­ra­do­res de formato más im­po­r­ta­n­tes.

Métodos co­m­pa­ra­ti­vos

Además de los ope­ra­do­res de co­m­pa­ra­ción, existen algunos métodos in­co­r­po­ra­dos que te permiten comparar cadenas según otros criterios:

Método De­s­cri­p­ción Ejemplo Valor de retorno
.startswith() Devuelve “true” cuando las primeras letras de una cadena coinciden con las de otra cadena "Benjamin".startswith("Ben") true
.endswith() Devuelve “true” cuando las últimas letras de una cadena coinciden con otra cadena "Benjamin".endswith("jasmin") false
.find() Devuelve el índice de la primera aparición de una subcadena; si la subcadena no aparece, devuelve -1. "Christmas".find("mas") 4

Comparar cadenas en Python: ejemplos de código

Para mostrarte cómo funcionan los ope­ra­do­res y métodos an­te­rio­res, te pre­se­n­ta­re­mos dos ejemplos. Uno de ellos es simple, mientras que el otro es un poco más complejo.

Comprobar si la lista está ordenada al­fa­bé­ti­ca­me­n­te

En este ejemplo, el programa crea una lista a partir de un texto de entrada. A co­n­ti­nua­ción, utiliza ope­ra­do­res co­m­pa­ra­ti­vos para comprobar si la lista está ordenada al­fa­bé­ti­ca­me­n­te.

input_list = []
while(True):
    temp = input('Please enter your word. If you don’t want to type any more words, enter \'.\'')
    if temp == '.':
        break
    input_list.append(temp)
print('Your entry: ', input_list)
i = 0
alph = 1
while(i < len(input_list) - 1):
    if(input_liste[i] > input_list[i + 1]):
        print('This list is not sorted alphabetically!')
        alph = 0
        break
    i = i + 1
if(alph == 1):
    print('This list is sorted alphabetically.')
Python

Base de datos de personas con función de búsqueda

En este ejemplo más complejo, se pide al usuario que in­tro­du­z­ca los nombres y apellidos de las personas. Cada uno de ellos se inserta en una lista, que a su vez se integra en una lista mayor. Así se crea una lista anidada en la que cada sublista contiene el nombre y los apellidos de una persona. A co­n­ti­nua­ción, esta lista grande se ordena al­fa­bé­ti­ca­me­n­te por apellidos. Ahora, el usuario puede volver a in­tro­du­cir texto para buscar personas en la base de datos. Esto se hace uti­li­za­n­do el método de co­m­pa­ra­ción ‘.find()’.

# Input
people = []
while(True):
    temp = input('Please enter the person’s last name. If you don’t want to enter people anymore, please enter \'.\')
    if temp == '.':
        break
    person = []
    person.append(temp)
    temp = input('Please enter the person’s first name.')
    person.append(temp)
    people.append(person)
print(Your entry: ', people)
# Sort
people.sort()
print(Sorted: ', people)
# Search function
while(True):
    search = input('Please enter string to browse database. If you don’t want to search for people anymore, please enter \'.\'')
    if search == '.':
        break
    for i in people:
        if(i[0].find(search) != -1 or i[1].find(search) != -1):
            print('Match found: ', i[0], ', ', i[1])
Python
Consejo

¿Quieres poner en marcha tu apli­ca­ción web rá­pi­da­me­n­te y sin apenas esfuerzo? No hay problema. Deploy Now de IONOS es la solución perfecta para ti.

Ir al menú principal