Come confrontare le stringhe in Python

Il confronto di stringhe in Python è un compito frequente durante la programmazione e può essere utilizzato per interpretare gli input utente, verificare una grande quantità di dati o elaborare protocolli di testo. Ti presentiamo numerose modalità per comparare stringhe in Python e ti forniamo esempi di facile comprensione.

Confrontare stringhe in Python: operatori e funzioni

Python mette a disposizione dei suoi utenti una vasta gamma di operatori e funzioni predefinite per semplificare e ottimizzare il confronto tra stringhe. Di seguito ti presentiamo gli operatori di confronto per poi procedere a illustrare i vari metodi di confronto. Inoltre, in fondo all’articolo abbiamo inserito due esempi di codice che mostrano come utilizzare sia gli operatori che i metodi.

Operatori di confronto

Il modo più semplice per comparare due stringhe in Python è usare gli operatori Python. Analogamente a quanto avviene con i numeri interi o in virgola mobile, è possibile utilizzare gli operatori di confronto per verificare l’uguaglianza tra le stringhe. Tuttavia, in questo caso gli operatori non operano come farebbero con i numeri, in quanto le stringhe possiedono numerose caratteristiche che è possibile mettere a confronto. Nella tabella qui sotto ti forniamo una panoramica degli operatori di confronto e ne spieghiamo il funzionamento.

Operatore Significato Esempio Output
== Le stringhe sono uguali "Ciao" == "ciao" falso
== Le stringhe non sono uguali "Ciao" != "ciao" vero
< Ordine lessicografico minore "Australia" < "Zimbabwe" vero
> Ordine lessicografico maggiore "Australia" > "Zimbabwe" falso
<= Ordine lessicografico minore o uguale "Germania" <= "America" falso
>= Ordine lessicografico maggiore o uguale "Germania" <= "Germania" vero

In questo contesto, “ordine lessicografico” è un termine tecnico che corrisponde “all’ordine alfabetico” e significa la stessa cosa. Le parole con un ordine lessicografico inferiore vengono collocate prima nell’alfabeto rispetto a quelle con un ordine lessicografico superiore. Ad esempio, la stringa “abcd” ha un ordine lessicografico inferiore rispetto alla stringa “xyz”.

È importante notare che gli spazi vuoti all’interno delle stringhe hanno l’ordine lessicografico più basso di tutti i caratteri. Prendendo i primi caratteri di una stringa come sottostringa di Python, tale sottostringa avrà sempre un ordine inferiore rispetto alla stringa originaria. Ad esempio, la stringa “Alex” ha un ordine lessicografico inferiore rispetto alla stringa “Alexander”.

Inoltre, ricordiamo che l’ordine lessicografico in Python non segue sempre l’ordine alfabetico tradizionale. Per esempio, Python valuterà l’espressione a < b come “vera”, ma l’espressione a < B come “falsa”. Questo è dovuto al fatto che sia nello standard ASCII che in quello Unicode, le lettere maiuscole sono codificate con valori inferiori rispetto alle lettere minuscole.

N.B.

Oltre al confronto fra stringhe, anche la formattazione di testi è una parte importante di molti programmi. Nel nostro articolo relativo ai metodi della formattazione delle stringhe in Python ti presentiamo i principali metodi e operatori di formattazione.

Metodi di confronto

Oltre agli operatori di confronto, esistono anche alcuni metodi che consentono di comparare le stringhe in base ad altri criteri:

Metodo Descrizione Esempio Output
.startswith() Restituisce “vero” se i primi caratteri di una stringa corrispondono a un’altra stringa "Benjamin".startswith("Ben") vero
.endswith() Restituisce “vero” se gli ultimi caratteri di una stringa corrispondono a un’altra stringa "Benjamin".endswith("jasmin") falso
.find() Restituisce l’indice della prima occorrenza di una sottostringa; se la sottostringa non esiste, restituisce -1. "Ragazza".find("gazza") 2

Confrontare stringhe in Python: esempi di codice

Per chiarire il funzionamento degli operatori e dei metodi appena presentati, ti forniamo due esempi: uno semplice e uno un po’ più complesso.

Verificare se una lista è in ordine alfabetico

In questo esempio, il programma riceve un input di testo e genera una lista. Successivamente, utilizza gli operatori di confronto per determinare se la lista è in ordine alfabetico.

input_lista = []
while(True):
    temp = input('Digita una parola. Se non vuoi inserire nessuna parola, digita \'.\' ')
    if temp == '.':
        break
    input_lista.append(temp)
print('Il tuo input: ', input_lista)
i = 0
alph = 1
while(i < len(input_lista) - 1):
    if(input_lista[i] > input_lista[i + 1]):
        print('Questa lista non è in ordine alfabetico!')
        alph = 0
        break
    i = i + 1
if(alph == 1):
    print('Questa lista è in ordine alfabetico.')
Python

Database di persone con funzione di ricerca

In questo esempio più complesso, l’utente è invitato a inserire cognomi e nomi di persone. Queste informazioni vengono inserite in una lista, che a sua volta viene inclusa in una lista più grande. Il risultato è una lista nidificata in cui ogni sottolista contiene il nome e il cognome di una persona. Questa lunga lista viene quindi ordinata in ordine alfabetico in base al cognome. Successivamente, l’utente ha la possibilità di inserire del testo nel database per cercare le persone. Questo viene eseguito con il metodo di confronto .find()


persone = []
while(True):
    temp = input('Digita il cognome della persona. Se non vuoi inserire nessuna persona, digita \'.\' ')
    if temp == '.':
        break
    persona = []
    persona.append(temp)
    temp = input('Digita il nome della persona.')
    persona.append(temp)
    persone.append(persona)
print('Il tuo input: ', persone)
# Ordinato
persone.sort()
print('Ordinato: ', persone)
# Funzione ricerca
while(True):
    search = input('Inserisci una stringa per effettuare una ricerca nel database. Se non vuoi più cercare nessuna persona, digita \'.\' ')
    if search == '.':
        break
    for i in persone:
        if(i[0].find(search) != -1 or i[1].find(search) != -1):
            print('Trovata corrispondenza: ', i[0], ', ', i[1])
Python
Consiglio

Desideri pubblicare online la tua applicazione in modo facile e veloce? Allora Deploy Now di IONOS è la soluzione perfetta per te.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.