Collections en Python: tout ce que vous devez savoir sur les collections Python

Ce blog couvrira les types de données de collection intégrés en python ainsi que le module de collections avec toutes les structures de données de collection spécialisées.

Le langage de programmation Python a quatre types de données de collecte- liste , tuple, ensembles et . Mais est également livré avec un module intégré connu sous le nom de collections qui a des structures de données spécialisées qui couvrent essentiellement les lacunes des quatre types de données. Dans ce blog, nous passerons en revue chacune de ces structures de données spécialisées en détail. Voici les sujets abordés dans ce blog:



Que sont les collections en Python?

Les collections en python sont essentiellement des types de données de conteneur, à savoir des listes, des ensembles, des tuples, un dictionnaire. Ils ont des caractéristiques différentes selon la déclaration et l'utilisation.



  • Une liste est déclarée entre crochets, elle est modifiable, stocke les valeurs en double et les éléments sont accessibles à l'aide d'index.

  • Un tuple est ordonné et immuable par nature, bien que des entrées dupliquées puissent être présentes à l'intérieur d'un tuple.



  • Un ensemble n'est pas ordonné et déclaré entre crochets. Il n'est pas indexé et n'a pas non plus d'entrées en double.

  • Un dictionnaire a des paires de valeurs clés et est de nature mutable. Nous utilisons des crochets pour déclarer un dictionnaire.

Ce sont les types de données de conteneur intégrés à usage général de Python. Mais comme nous le savons tous, python a toujours un petit plus à offrir. Il est livré avec un module python nommé collections qui a des structures de données spécialisées.



Structures de données de collecte spécialisées

Les collections module en python implémente des structures de données spécialisées qui offrent une alternative aux types de données de conteneur intégrés de python. Voici les structures de données spécialisées dans le module de collections.

  1. namedtuple ()
  2. et
  3. Chainmap
  4. Compteur
  5. OrdonnéDict
  6. defaultdict
  7. UserDict
  8. Liste d'utilisateur
  9. UserString

namedtuple ()

Il renvoie un tuple avec une entrée nommée, ce qui signifie qu'un nom sera attribué à chaque valeur du tuple. Il surmonte le problème d'accès aux éléments en utilisant les valeurs d'index. Avec namedtuple (), il devient plus facile d'accéder à ces valeurs, car vous n'avez pas à vous souvenir des valeurs d'index pour obtenir des éléments spécifiques.

Comment ça fonctionne?

Tout d'abord, vous devez importer le module de collections, il ne nécessite pas d'installation.

à partir de collections importer namedtuple

Regardez le code suivant pour comprendre comment vous pouvez utiliser namedtuple.

a = namedtuple ('courses', 'name, tech') s = a ('data science', 'python') print (s) # the output will be courses (name = 'python', tech = 'python')

Comment créer un namedtuple à l'aide d'une liste?

s._make (['data science', 'python']) # la sortie sera la même qu'avant.

et

deque prononcé comme «deck» est une liste optimisée pour effectuer facilement l'insertion et la suppression.

Comment ça fonctionne?

différence entre c c ++ et java
#création d'un deque à partir de collections import deque a = ['d', 'u', 'r', 'e', ​​'k'] a1 = deque (a) print (a1) # la sortie sera deque ([' d ',' u ',' r ',' e ',' k '])

Voyons maintenant comment nous allons insérer et supprimer des éléments de deque.

a1.append ('a') print (a1) # la sortie sera deque (['d', 'u', 'r', 'e', ​​'k', 'a']) a1.appendleft (' e ') print (a1) # la sortie sera deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])

Comme cela devrait être évident, l'insertion d'un composant est améliorée en utilisant deque, vous pouvez également supprimer des composants.

a1.pop () print (a1) # la sortie sera deque (['e', 'd', 'u', 'r', 'e', ​​'k']) a1.popleft () print (a1 ) # la sortie sera deque (['d', 'u', 'r', 'e', ​​'k'])

Semblable aux types de données intégrés, il existe plusieurs autres opérations que nous pouvons effectuer sur un deque. Comme compter des éléments ou effacer le deque, etc.

ChainMap

C'est une classe de type dictionnaire qui est capable de faire une vue unique de plusieurs mappages. Il renvoie essentiellement une liste de plusieurs autres dictionnaires. Supposons que vous ayez deux dictionnaires avec plusieurs paires clé / valeur, dans ce cas ChainMap créera une liste unique avec les deux dictionnaires.

Comment ça fonctionne?

from collections import ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'data science', 4: 'Machine learning'} c = ChainMap (a, b) print (c) #the la sortie sera ChainMap [{1: 'edureka', 2: 'python'}, {3: 'data science', 4: 'Machine learning'}]

Pour accéder ou insérer des éléments, nous utilisons les clés comme index. Mais pour ajouter un nouveau dictionnaire dans ChainMap, nous utilisons l'approche suivante.

type de transformation en informatica
a1 = {5: 'AI', 6: 'neural networks'} c1 = c.new_child (a1) print (c1) # la sortie sera ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'science des données', 4: 'Apprentissage automatique'}, {5: 'IA', 6: 'réseaux de neurones'}]

Compteur

Il s'agit d'une sous-classe de dictionnaire utilisée pour compter les objets hachables.

Comment ça fonctionne?

from collections import Counter a = [1,1,1,1,2,3,3,4,3,3,4] c = Counter (a) print (c) # la sortie sera Counter = ({1: 4, 2: 1, 3: 4, 4: 2})

En plus des opérations que vous pouvez effectuer sur un dictionnaire, Counter dispose de 3 opérations supplémentaires que nous pouvons effectuer.

  1. fonction d'élément - Elle renvoie une liste contenant tous les éléments du compteur.
  2. Most_common () - Il renvoie une liste triée avec le nombre de chaque élément du compteur.
  3. Subtract () - Il prend un objet itérable comme argument et déduit le nombre d'éléments dans le compteur.

OrdonnéDict

Il s'agit d'une sous-classe de dictionnaire qui se souvient de l'ordre dans lequel les entrées ont été ajoutées. Fondamentalement, même si vous modifiez la valeur de la clé, la position ne sera pas modifiée en raison de l'ordre dans lequel elle a été insérée dans le dictionnaire.

Comment ça fonctionne?

à partir de collections import OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print (from) #la sortie sera OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]

Peu importe la valeur insérée dans le dictionnaire, OrderedDict se souvient de l'ordre dans lequel il a été inséré et obtient la sortie en conséquence. Même si on change la valeur de la clé. Disons que si nous changeons la valeur de clé 4 à 8, l'ordre ne changera pas dans la sortie.

defaultdict

C'est une sous-classe de dictionnaire qui appelle une fonction de fabrique pour fournir les valeurs manquantes. En général, il ne génère aucune erreur lorsqu'une valeur de clé manquante est appelée dans un dictionnaire.

Comment ça fonctionne?

from collections import defaultdict d = defaultdict (int) # nous devons également spécifier un type. d [1] = 'edureka' d [2] = 'python' print (d [3]) # il donnera la sortie comme 0 au lieu de keyerror.

UserDict

Cette classe agit comme un wrapper autour des objets de dictionnaire. Le besoin de cette classe est venu de la nécessité de sous-classer directement à partir de dict. Il devient plus facile de travailler avec cette classe car le dictionnaire sous-jacent devient un attribut.

class collections.UserDict ([données initiales])

Cette classe simule un dictionnaire. Le contenu de l’instance est conservé dans un dictionnaire normal accessible avec l’attribut ‘data’ de la classe UserDict. La référence des données initiales n'est pas conservée, pour être utilisée à d'autres fins.

Liste d'utilisateur

Cette classe agit comme un wrapper autour des objets de la liste. C'est une classe de base utile pour d'autres listes comme les classes qui peuvent en hériter et remplacer les méthodes existantes ou même en ajouter moins de nouvelles.

Le besoin de cette classe est venu de la nécessité de sous-classer directement à partir de list. Il devient plus facile de travailler avec cette classe car la liste sous-jacente devient un attribut.

class collections.UserList ([liste])

C'est la classe qui simule une liste. Le contenu de l'instance est conservé dans une liste habituelle. Les sous-classes de la liste sont utilisées pour offrir un constructeur qui peut être appelé sans ou avec un conflit.

Dans ce blog, nous avons découvert les structures de données spécialisées fournies avec le module de collections en python. L'optimisation conduit à de meilleures performances et à de meilleurs résultats. Il en va de même pour notre propre carrière et nos compétences. Si vous souhaitez lancer votre apprentissage et optimiser votre perception de la programmation, inscrivez-vous à edureka's et libérez les possibilités infinies avec python.

Vous avez des questions? mentionnez-les dans vos commentaires et nous vous répondrons dans les plus brefs délais.