Comparer des Strings avec Python : comment comparer des Strings ?

La comparaison de Python Strings constitue une tâche de programmation courante qui s’utilise au quotidien. Elle permet notamment d’interpréter les entrées utilisateur, de vérifier d’importants ensembles de données ou encore de travailler avec des protocoles basés sur du texte. Découvrez avec nous plusieurs solutions permettant de comparer des Strings avec Python, chaque fois illustrées par des exemples.

Comparaison de Strings avec Python : opérateurs et fonctions

Python propose à ses utilisateurs plusieurs opérateurs permettant de comparer des Strings, ainsi qu’une gamme de fonctions prédéfinies servant à faciliter et à accélérer la comparaison de ces dernières. Intéressons-nous d’abord aux opérateurs, avant de passer en revue les différentes méthodes de comparaison. Viendront ensuite deux exemples de code, dont nous nous servirons pour illustrer le fonctionnement de ces opérateurs et méthodes.

Opérateurs de comparaison

Pour comparer des Strings avec Python, la solution la plus simple consiste à faire appel à des opérateurs Python. Comme dans le cas de nombres entiers ou flottants, les opérateurs de comparaison peuvent être utilisés pour vérifier les similitudes entre les Strings. Dans un tel contexte, certains opérateurs ne fonctionnent toutefois pas comme pour ces nombres ; en effet, en ce qui concerne les Strings, il est possible de comparer différentes propriétés. Dans le tableau ci-dessous, vous trouverez une rapide présentation des opérateurs de comparaison et de leur fonctionnement respectif.

Opérateur Signification Exemple Valeur renvoyée
== Strings similaires "Bonjour" == "bonjour" faux
!= Strings différentes "Bonjour" != "bonjour" vrai
< Ordre lexicographique (inférieur) "Australie" < "Zimbabwe" vrai
> Ordre lexicographique (supérieur) "Australie" > "Zimbabwe" faux
<= Ordre lexicographique (inférieur ou égal) "Danemark" <= "Amérique" faux
>= Ordre lexicographique (supérieur ou égal) "Danemark" <= "Danemark" vrai

Ici, l’« ordre lexicographique » est un terme technique synonyme d’« ordre alphabétique » ; ils ont donc la même signification. Les mots avec un ordre lexicographique inférieur apparaissent plus tôt dans l’alphabet que les mots avec un ordre lexicographique supérieur. Par exemple, l’ordre lexicographique de la String « abcd » est donc inférieur à celui de la String « xyz ».

Les espaces vides au sein d’une String correspondent aux caractères avec un ordre lexicographique inférieur. En utilisant les premiers caractères d’une String en tant que Python Substring, l’ordre lexicographique de celle-ci sera toujours inférieur à celui de la String originale. Par exemple, l’ordre lexicographique de la String « Alex » est inférieur à celui de la String « Alexander ».

Attention : l’ordre lexicographique utilisé avec Python ne correspond pas toujours à l’ordre alphabétique dont vous pouvez avoir l’habitude. Python considère notamment que l’expression « a < b » doit renvoyer « vrai », mais que l’expression « a < B » renverra « faux ». En effet, dans les normes ASCII et Unicode, les lettres majuscules sont systématiquement codées avec des valeurs inférieures à celles des lettres minuscules.

Note

En plus de la comparaison de Strings, le formatage de texte constitue une composante importante pour de nombreux programmes. Consultez notre article sur les méthodes String Format en Python pour en savoir plus sur les méthodes et opérateurs de mise en forme les plus importants.

Méthodes de comparaison

Les opérateurs de comparaison ne sont pas les seuls à vous permettre de comparer des Strings ; certaines méthodes intégrées sont également prévues à cet effet, pour une comparaison fondée sur d’autres critères :

Méthode Description Exemple Valeur renvoyée
.startswith() Renvoie « vrai » si les premières lettres d’une String correspondent à une autre String "Benjamin".startswith("Ben") vrai
.endswith() Renvoie « vrai » si les dernières lettres d’une String correspondent à une autre String "Benjamin".endswith("jasmin") faux
.find() Renvoie l’index de la première occurrence d’une Substring ; en cas de non-occurrence de la Substring, « -1 » est renvoyé "Benjamin".find("jamin") 4

Comparer des Strings avec Python : exemples de code

Pour illustrer le fonctionnement des opérateurs et méthodes décrits ci-dessus, laissez-nous vous présenter deux exemples. L’un est facile, mais l’autre est un peu plus complexe.

Vérifier si une liste est triée par ordre alphabétique

Dans l’exemple ci-dessous, le programme reçoit une saisie de texte et s’en sert pour créer une liste. Ensuite, il utilise des opérateurs de comparaison de manière à vérifier que la liste est bien triée par ordre alphabétique.

liste_de_saisie = []
while(True):
    temp = input('Veuillez entrer un mot. Si vous ne souhaitez plus entrer de mots, veuillez entrer \'.\'')
    if temp == '.':
        break
    liste_de_saisie.append(temp)
print('Votre saisie : ', liste_de_saisie)
i = 0
alph = 1
while(i < len(liste_de_saisie) - 1):
    if(liste_de_saisie[i] > liste_de_saisie[i + 1]):
        print('Cette liste n'est pas triée par ordre alphabétique !')
        alph = 0
        break
    i = i + 1
if(alph == 1):
    print('Cette liste est triée par ordre alphabétique.')
Python

Base de données sur les personnes avec fonction de recherche

Cet exemple est plus complexe. L’utilisateur est invité à renseigner les noms et prénoms des personnes concernées. Ils sont ajoutés à une liste ensuite intégrée à une autre liste, plus importante. Une liste imbriquée est alors créée ; chaque sous-liste qui la compose contient le prénom et le nom d’une personne. Ensuite, la grande liste est triée par ordre alphabétique, sur la base des noms de famille. L’utilisateur peut alors saisir à nouveau du texte de manière à rechercher des personnes dans la base de données. Pour ce faire, il lui suffit d’utiliser la méthode de comparaison « .find() ».


personnes = []
while(True):
    temp = input('Veuillez saisir le nom de famille de la personne. Si vous ne souhaitez plus saisir de personnes, veuillez saisir \'.\'')
    if temp == '.':
        break
    personne = []
    personne.append(temp)
    temp = input('Veuillez saisir le prénom de la personne.')
    personne.append(temp)
    personnes.append(personne)
print('Votre saisie: ', personnes)
# Trier
personnes.sort()
print('Trié : ', personnes)
# Fonction de recherche
while(True):
    search = input('Veuillez saisir une chaîne pour effectuer une recherche dans la base de données. Si vous ne souhaitez plus rechercher de personnes, veuillez saisir \'.\'''.)
    if search == '.':
        break
    for i in personnes:
        if(i[0].find(search) != -1 or i[1].find(search) != -1):
            print('Match trouvé : ', i[0], ', ', i[1])
Python
Conseil

Vous cherchez à mettre rapidement et facilement votre application Web en ligne ? Rien de plus facile : Deploy Now est la solution IONOS qu’il vous faut.