collections de Python

Python propose quatre types de collecte de données : listes, tuples, ensembles et dictionnaires. Le module Python de collections fournit des options supplémentaires, notamment namedtuple, Counter, defaultdictet ChainMap.

Python propose quatre types de données de collecte : listes, tuples, ensembles et dictionnaires. Chacun de ces types de données est utile dans des situations spécifiques.

Par exemple, comme les listes peuvent être modifiées, vous pouvez en utiliser une pour stocker une liste évolutive de noms d’élèves. Ou supposons que vous souhaitiez stocker une liste de saveurs de crème glacée qui ne changeront jamais. Un tuple, dont le contenu ne peut pas être modifié, peut être plus approprié.

Souvent, lorsque vous travaillez en Python, vous pouvez constater que ces types de données n’offrent pas toutes les fonctionnalités que vous recherchez. Heureusement, il existe un module Python que vous pouvez utiliser pour accéder à des fonctionnalités plus avancées liées aux collections de données : le module de collections Python.

Le module de collections Python a été créé pour améliorer la fonctionnalité des options de collecte intégrées. et pour donner aux développeurs plus de flexibilité lorsqu’ils travaillent avec des structures de données. Dans ce guide, nous allons détailler les bases du module de collections Python et explorer quatre des structures de données les plus couramment utilisées du module.

Refresh Collections

Les collections sont des types de données de conteneur qui peut être utilisé pour stocker des données. Comme indiqué précédemment, les collections peuvent stocker des listes, des ensembles, des tuples et des dictionnaires. Chacun de ces types de données a ses propres caractéristiques.

Listes

Une list est une donnée ordonnée et modifiable type qui peut être utilisé pour stocker des données qui peuvent changer au fil du temps. Par exemple, vous pouvez ajouter, supprimer et mettre à jour des éléments de liste existants. Les listes peuvent contenir des valeurs en double. Vous pouvez utiliser des numéros d’index pour référencer des éléments individuels dans une liste.

Ce qui suit est un exemple de déclaration d’une liste en Python :

81 % des participants ont déclaré qu’ils se sentaient plus confiants dans leur perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Tuples sont des types de données ordonnés et immuables. Bien que les tuples puissent contenir des valeurs en double, leurs valeurs ne peuvent pas être modifiées. Les tuples sont entourés d’accolades.

Voici un exemple de tuple Python :

Ensembles

Les ensembles sont des listes non ordonnées. Ils sont déclarés entre crochets. Contrairement aux listes, les ensembles n’ont pas de valeurs d’index et ne peuvent pas inclure d’entrées en double.

Voici un exemple d’ensemble Python :

Dictionnaires

Les dictionnaires sont des types de données non ordonnés et modifiables qui peuvent être indexés. Chaque élément d’un dictionnaire a une clé et une valeur.

Voici un exemple d’entrée de dictionnaire Python :

Ces quatre types de données ont une grande variété d’utilisations en Python . Cependant, si vous cherchez à effectuer des actions plus avancées avec les types de données de conteneur Python, le module de collections Python est intéressant.

Le module de collections Python contient un certain nombre de structures de données spécialisées que vous pouvez à utiliser en plus des conteneurs intégrés ou en tant qu’alternative aux conteneurs intégrés de Python. Parce que collections est un module, nous devons l’importer dans notre programme. Cependant, il est intégré à Python, nous n’avons donc pas besoin d’importer des bibliothèques secondaires.

:1em; padding-right:1em;">" PLUS : Opérateurs ternaires JavaScript : un guide étape par étape

Dans cet article, nous allons nous concentrer sur les quatre structures de données les plus couramment utilisées du module de collections. Ce sont les suivantes :

  • Compteur
  • namedtuple
  • defaultdict
  • ChainMap

Compteur

Counter() est une sous-classe de l’objet dictionnaire et peut être utilisée pour compter les objets pouvant être hachés. La fonction Counter() prend un itérable comme argument et renvoie un dictionnaire.

Donc , disons que nous avons une liste de commandes de sandwichs pour janvier et que nous voulons savoir combien de sandwichs BLT nous avons vendus au cours de ce mois. Nous pourrions utiliser la fonction Counter() pour le faire.

Voici un exemple de code que nous utiliserions :

Notre programme renvoie : 2.

Il se passe beaucoup de choses dans notre code, alors décomposons-le.

Sur la première ligne, nous importons la fonction Compteur depuis collections. Nous devons le faire car collections est un module. Ensuite, nous déclarons notre tableau sandwich_sales, qui stocke le nombre de sandwichs que nous avons vendus en janvier.

Sur la ligne suivante, nous déclarons la variable our_counter et attribuez-lui la fonction Compteur(sandwich_sales). Cela nous permet d’accéder au résultat de la fonction Counter() lorsque nous référençons our_counter.

Enfin, nous utilisons print(our_counter[ "BLT‚"]) pour imprimer combien de sandwichs dans notre dictionnaire sont égaux à BLT. Dans ce cas, la réponse était 2.

namedtuple

La méthode namedtuple() renvoie un tuple avec des noms pour chacun position dans le tuple. Lorsque vous travaillez avec un tuple standard, la seule façon d’accéder aux valeurs individuelles est de référencer les numéros d’index du tuple. Si vous travaillez avec un gros tuple, cela peut rapidement devenir déroutant.

"Career Karma est entré dans ma vie quand j’en avais le plus besoin et m’a rapidement aidé à faire partie d’un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé mon travail de rêve qui correspond à mes valeurs et mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Voici un exemple d’utiliser la méthode namedtuple() pour stocker le nom et le prix d’un sandwich :

Notre programme renvoie : 3,00 $.

Il se passe beaucoup de choses dans notre code, alors décomposons-le. Sur la première ligne, nous importons namedtuple du module collections afin de pouvoir l’utiliser dans notre code.

Sur la ligne suivante, nous créons le tuple Sandwich avec le nom Sandwich, et attribuez-lui deux en-têtes : name et price. Cela nous permet d’utiliser ces en-têtes pour référencer les valeurs de nos tuples plus tard dans notre code. Ensuite, nous déclarons une variable appelée first_sandwich, à laquelle nous avons attribué le tuple élément Poulet Teriyaki.

Enfin, nous imprimons le prix de notre first_sandwich, qui dans ce cas est de 3,00 $.

Vous pouvez également créer un namedtuple() à l’aide d’une liste. Voici un exemple :

Notre programme renvoie : Italien épicé. Dans cet exemple, nous utilisons _make en plus de notre élément Sandwich pour indiquer que nous voulons transformer notre liste en un namedtuple().

defaultdict

La méthode defaultdict() peut être utilisée pour créer un dictionnaire Python qui ne lance pas une KeyError lorsque vous essayez d’accéder à un objet qui n’existe pas. Au lieu de cela, si vous référencez un objet qui n’existe pas, le dictionnaire renverra un type de données prédéfini.

Voici un exemple qui utilise le defaultdict() méthode t o déclarer un dictionnaire qui renverra un str si on référence un objet inexistant :

Notre programme renvoie :

Dans l’exemple ci-dessus, nous avons créé un dictionnaire avec des valeurs aux positions d’index et 1. Lorsque nous imprimons des sandwichs[1], nous pouvons voir que notre dictionnaire a stocké nos valeurs. Cependant, lorsque nous essayons d’imprimer l’élément associé à la valeur d’index 2, notre programme renvoie une ligne vide car aucune valeur n’est affectée à cet index.

Dans un standard dictionnaire, notre programme renverrait une KeyError. Cependant, comme nous avons utilisé defaultdict, notre programme renvoie à la place le type de données que nous avons spécifié lors de la création du dictionnaire. Dans l’exemple ci-dessus, nous avons déclaré que toute clé invalide devrait retourner un str, mais nous aurions pu le coder pour retourner un entier ou tout autre type de données valide.

Cette fonction peut être utile lorsque vous travaillez avec un dictionnaire pour effectuer une opération sur plusieurs éléments, mais que l’opération peut ne pas fonctionner sur chaque élément. Au lieu de faire en sorte que votre programme renvoie une erreur, le defaultdict() renverra une valeur par défaut et continuera à fonctionner.

ChainMap

Le ChainMap () méthode est utilisée pour combiner deux ou plusieurs dictionnaires ; il renvoie une liste de dictionnaires. Par exemple, disons que nous avons deux menus, un menu standard et un menu secret, que nous souhaitons fusionner en un seul grand menu. Pour ce faire, nous pourrions utiliser la fonction ChainMap().

Voici un exemple d’utilisation de ChainMap() pour fusionner notre standard et menus secrets :

Notre code renvoie un objet ChainMap qui a fusionné nos deux menus, comme suit :

Nous pouvons accéder à chaque valeur de notre ChainMap en référençant son nom de clé. Par exemple, voici une ligne de code qui nous permet de récupérer le prix du sandwich BLT :

Notre programme renvoie : 3,05 $

En outre, il est important de noter que ChainMap se met à jour lorsque les dictionnaires qu’il contient sont mis à jour. Ainsi, si vous modifiez une valeur dans le standard_menu ou secret_menu, l’objet ChainMap sera également mis à jour. Voici un exemple :

Notre code renvoie :

Comme vous pouvez le voir, le prix de notre BLT est passé de 3,05 $ à 3,10 $ car nous avons changé son prix dans notre dictionnaire standard_menu.

Le Cha L’objet inMap comprend également deux fonctions qui peuvent être utilisées pour récupérer les clés ou les valeurs d’un objet. Nous pouvons illustrer cela en utilisant les méthodes keys() et values(). Ces méthodes renvoient les clés de nos données (que nous pouvons utiliser pour référencer une valeur particulière) et les valeurs qui leur ont été attribuées :

Notre code renvoie les éléments suivants :

Notre code a renvoyé les clés et les valeurs de chaque élément de notre objet ChainMap lorsque nous avons utilisé les méthodes keys() et values() ci-dessus.

De plus, vous pouvez ajouter un nouveau dictionnaire à un objet ChainMap en utilisant la méthode new_child(). Disons que notre chef sandwich a testé de nouveaux sandwichs sur une carte test et souhaite en ajouter deux à notre nouvelle carte. Nous pourrions utiliser le code suivant pour atteindre cet objectif :

Notre code renvoie une ChainMap mise à jour avec nos nouveaux sandwichs au début du dictionnaire , comme suit :

Conclusion

Nous pouvons utiliser le Python module collections pour étendre les collections intégrées offertes par Python et accéder aux méthodes de structure de données personnalisées. Ceci est utile si vous cherchez à travailler avec un type de données de collection, tel qu’une liste ou un tuple, mais que vous avez besoin d’exécuter une certaine fonction qui n’est pas disponible en Python vanilla (ou plain).< /p>

Dans ce guide, à l’aide d’exemples, nous avons expliqué comment utiliser les collections en Python et discuté des quatre principales méthodes proposées par la bibliothèque : Counter, namedtuple , defaultdict et ChainMap.

Vous disposez désormais des connaissances nécessaires pour commencer à travailler avec le module de collections Python comme un expert !

√ätes-vous curieux de savoir comment l’apprentissage de Python peut vous aider à vous lancer dans une carrière dans la technologie ? Téléchargez l’application gratuite Career Karma dès aujourd’hui et discutez avec l’un de nos coachs professionnels experts !