Image de l'article Structures de données en Python : recherche

5.11. Structures de données en Python : recherche

Page 25 | Écouter en audio

Structures de données en Python : recherche

Python est un langage de programmation puissant et polyvalent qui offre une variété de structures de données intégrées. Une solide compréhension de ces frameworks est cruciale pour tout programmeur Python, en particulier lors de la création de systèmes complexes avec Python et Django. Dans ce chapitre, nous allons nous concentrer sur un aspect fondamental des structures de données Python : la recherche.

Introduction à la quête

La recherche est une opération fondamentale qui consiste à trouver un élément spécifique dans une structure de données. Python propose plusieurs méthodes efficaces pour effectuer des recherches, en fonction de la structure de données spécifique que vous utilisez. Explorons certaines des structures de données les plus courantes et comment y effectuer des recherches.

Rechercher dans les listes

Une liste en Python est une structure de données ordonnée qui peut contenir n'importe quel nombre d'éléments, et ces éléments peuvent être de n'importe quel type. Le moyen le plus simple de récupérer un élément d'une liste consiste à utiliser l'opérateur « in ».

liste = [1, 2, 3, 4, 5] si 3 dans la liste : print("Le chiffre 3 est dans la liste") autre: print("Le chiffre 3 n'est pas dans la liste")

Cette opération de recherche a une complexité temporelle de O(n), où n est le nombre d'éléments dans la liste. Cela signifie que, dans le pire des cas, Python devra vérifier chaque élément de la liste pour trouver ce que nous recherchons.

Rechercher dans les ensembles

Un ensemble en Python est une structure de données non ordonnée qui stocke des éléments uniques. La recherche d'un ensemble est nettement plus rapide que la recherche d'une liste, avec une complexité temporelle moyenne de O(1).

ensemble = {1, 2, 3, 4, 5} si 3 dans l'ensemble : print("Le numéro 3 est dans l'ensemble") autre: print("Le chiffre 3 n'est pas dans l'ensemble")

Cette efficacité est due à la manière dont les ensembles sont implémentés en Python. Ils utilisent une table de hachage, qui permet à Python de trouver rapidement un élément quelle que soit la taille de l'ensemble.

Rechercher dans les dictionnaires

Un dictionnaire Python est une structure de données qui stocke des paires clé-valeur. Une recherche dans un dictionnaire est similaire à une recherche d'ensemble dans la mesure où elle utilise également une table de hachage pour plus d'efficacité. Cependant, nous recherchons une clé au lieu d'une valeur.

dictionnaire = {'un' : 1, 'deux' : 2, 'trois' : 3, 'quatre' : 4, 'cinq' : 5} si 'trois' dans le dictionnaire : print("La clé 'trois' est dans le dictionnaire") autre: print("La clé 'trois' n'est pas dans le dictionnaire")

La recherche dans un dictionnaire a également une complexité temporelle moyenne de O(1), ce qui en fait un choix efficace pour de grandes quantités de données.

Recherche binaire

Pour les listes ordonnées, Python propose un moyen encore plus efficace de rechercher un élément : la recherche binaire. Il s'agit d'une stratégie « diviser pour régner » qui réduit de moitié le nombre de comparaisons nécessaires à chaque étape.

importer la bissectrice liste_ordonnée = [1, 2, 3, 4, 5] index = bisect.bisect_left (ordered_list, 3) si index != len(sorted_list) et sorted_list[index] == 3 : print("Le chiffre 3 est dans la liste") autre: print("Le chiffre 3 n'est pas dans la liste")

La recherche binaire a une complexité temporelle de O(log n), ce qui la rend extrêmement efficace pour les grandes listes.

Conclusion

Comprendre comment effectuer des recherches efficaces sur différentes structures de données est une compétence essentielle pour tout programmeur Python. Chaque structure de données présente ses propres avantages et inconvénients en termes d'efficacité de la recherche. Il est donc important de choisir la structure de données adaptée au travail à accomplir. Alors que nous continuons à explorer la création de systèmes avec Python et Django, nous verrons comment ces structures de données et techniques de requête peuvent être appliquées pour résoudre des problèmes complexes.

Répondez maintenant à l’exercice sur le contenu :

Quelle est la complexité temporelle de l’opération de récupération sur différentes structures de données en Python ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Fonctions en Python

Page suivante de lebook gratuit :

26Fonctions en Python

3 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte