La com­pa­rai­son de Python Strings constitue une tâche de pro­gram­ma­tion courante qui s’utilise au quotidien. Elle permet notamment d’in­ter­pré­ter les entrées uti­li­sa­teur, de vérifier d’im­por­tants ensembles de données ou encore de tra­vail­ler avec des pro­to­coles basés sur du texte. Découvrez avec nous plusieurs solutions per­met­tant de comparer des Strings avec Python, chaque fois il­lus­trées par des exemples.

Com­pa­rai­son de Strings avec Python : opé­ra­teurs et fonctions

Python propose à ses uti­li­sa­teurs plusieurs opé­ra­teurs per­met­tant de comparer des Strings, ainsi qu’une gamme de fonctions pré­dé­fi­nies servant à faciliter et à accélérer la com­pa­rai­son de ces dernières. In­té­res­sons-nous d’abord aux opé­ra­teurs, avant de passer en revue les dif­fé­rentes méthodes de com­pa­rai­son. Viendront ensuite deux exemples de code, dont nous nous servirons pour illustrer le fonc­tion­ne­ment de ces opé­ra­teurs et méthodes.

Opé­ra­teurs de com­pa­rai­son

Pour comparer des Strings avec Python, la solution la plus simple consiste à faire appel à des opé­ra­teurs Python. Comme dans le cas de nombres entiers ou flottants, les opé­ra­teurs de com­pa­rai­son peuvent être utilisés pour vérifier les si­mi­li­tudes entre les Strings. Dans un tel contexte, certains opé­ra­teurs ne fonc­tion­nent toutefois pas comme pour ces nombres ; en effet, en ce qui concerne les Strings, il est possible de comparer dif­fé­rentes pro­prié­tés. Dans le tableau ci-dessous, vous trouverez une rapide pré­sen­ta­tion des opé­ra­teurs de com­pa­rai­son et de leur fonc­tion­ne­ment respectif.

Opérateur Sig­ni­fi­ca­tion Exemple Valeur renvoyée
== Strings si­mi­laires "Bonjour" == "bonjour" faux
!= Strings dif­fé­rentes "Bonjour" != "bonjour" vrai
< Ordre lexi­co­gra­phique (inférieur) "Australie" < "Zimbabwe" vrai
> Ordre lexi­co­gra­phique (supérieur) "Australie" > "Zimbabwe" faux
<= Ordre lexi­co­gra­phique (inférieur ou égal) "Danemark" <= "Amérique" faux
>= Ordre lexi­co­gra­phique (supérieur ou égal) "Danemark" <= "Danemark" vrai

Ici, l’« ordre lexi­co­gra­phique » est un terme technique synonyme d’« ordre al­pha­bé­tique » ; ils ont donc la même sig­ni­fi­ca­tion. Les mots avec un ordre lexi­co­gra­phique inférieur ap­pa­rais­sent plus tôt dans l’alphabet que les mots avec un ordre lexi­co­gra­phique supérieur. Par exemple, l’ordre lexi­co­gra­phique de la String « abcd » est donc inférieur à celui de la String « xyz ».

Les espaces vides au sein d’une String cor­res­pon­dent aux ca­rac­tères avec un ordre lexi­co­gra­phique inférieur. En utilisant les premiers ca­rac­tères d’une String en tant que Python Substring, l’ordre lexi­co­gra­phique de celle-ci sera toujours inférieur à celui de la String originale. Par exemple, l’ordre lexi­co­gra­phique de la String « Alex » est inférieur à celui de la String « Alexander ».

Attention : l’ordre lexi­co­gra­phique utilisé avec Python ne cor­res­pond pas toujours à l’ordre al­pha­bé­tique dont vous pouvez avoir l’habitude. Python considère notamment que l’ex­pres­sion « a < b » doit renvoyer « vrai », mais que l’ex­pres­sion « a < B » renverra « faux ». En effet, dans les normes ASCII et Unicode, les lettres ma­jus­cules sont sys­té­ma­ti­que­ment codées avec des valeurs in­fé­rieures à celles des lettres mi­nus­cules.

Note

En plus de la com­pa­rai­son de Strings, le formatage de texte constitue une com­po­sante im­por­tante pour de nombreux pro­grammes. Consultez notre article sur les méthodes String Format en Python pour en savoir plus sur les méthodes et opé­ra­teurs de mise en forme les plus im­por­tants.

Méthodes de com­pa­rai­son

Les opé­ra­teurs de com­pa­rai­son 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 com­pa­rai­son fondée sur d’autres critères :

Méthode Des­crip­tion Exemple Valeur renvoyée
.startswith() Renvoie « vrai » si les premières lettres d’une String cor­res­pon­dent à une autre String "Benjamin".startswith("Ben") vrai
.endswith() Renvoie « vrai » si les dernières lettres d’une String cor­res­pon­dent à une autre String "Benjamin".endswith("jasmin") faux
.find() Renvoie l’index de la première oc­cur­rence d’une Substring ; en cas de non-oc­cur­rence de la Substring, « -1 » est renvoyé "Benjamin".find("jamin") 4

Comparer des Strings avec Python : exemples de code

Pour illustrer le fonc­tion­ne­ment des opé­ra­teurs 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 al­pha­bé­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é­ra­teurs de com­pa­rai­son de manière à vérifier que la liste est bien triée par ordre al­pha­bé­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’uti­li­sa­teur est invité à ren­seig­ner les noms et prénoms des personnes con­cer­nées. Ils sont ajoutés à une liste ensuite intégrée à une autre liste, plus im­por­tante. 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 al­pha­bé­tique, sur la base des noms de famille. L’uti­li­sa­teur peut alors saisir à nouveau du texte de manière à re­cher­cher des personnes dans la base de données. Pour ce faire, il lui suffit d’utiliser la méthode de com­pa­rai­son « .find() ».

# Saisie
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 ra­pi­de­ment et fa­ci­le­ment votre ap­pli­ca­tion Web en ligne ? Rien de plus facile : Deploy Now est la solution IONOS qu’il vous faut.

Aller au menu principal