Recherche de site Web

Apprendre la structure de données Python Set/Frozenset – Partie 4


Dans cette Partie 4 de la série Python Data Structure, nous discuterons de ce qu'est un ensemble, en quoi il diffère des autres structures de données en Python, comment créer des objets d'ensemble, supprimer des objets d'ensemble et les méthodes d'objets d'ensemble. .

  • Un objet ensemble est une collection non ordonnée d’objets hachables distincts.
  • Set supprime automatiquement les éléments en double de l’objet.
  • Étant donné que les objets définis ne sont pas ordonnés, aucune opération d'indexation et de découpage n'est prise en charge.

Il existe actuellement deux types d'ensembles intégrés.

  1. set – Puisqu'il est mutable, il n'a pas de valeur de hachage et ne peut pas être utilisé ni comme clé de dictionnaire ni comme élément d'un autre ensemble.
  2. frozenset – Immuable et hachable – son contenu ne peut pas être modifié après sa création ; il peut donc être utilisé comme clé de dictionnaire ou comme élément d’un autre ensemble.

Objet d’ensemble de construction

Créez un ensemble en utilisant la méthode constructeur "set()" ou en utilisant des accolades avec des virgules séparant les éléments "{a,b,c}".

REMARQUE : vous ne pouvez pas construire un objet défini via des accolades vides car cela créerait un objet dictionnaire.

Définir les méthodes

Utilisez la fonction intégrée « dir() » pour répertorier les méthodes et attributs définis disponibles.

Ajouter des éléments pour définir un objet

Comme déjà indiqué, set est un type mutable. Vous pouvez ajouter, supprimer, mettre à jour votre objet défini une fois celui-ci créé.

Parlons de deux méthodes définies : add et update.

  • Méthode add(elem) – Cette méthode ajoute un seul élément à un objet défini.
  • Méthode update(*others) – Cette méthode ajoute plusieurs éléments à un objet défini. Vous pouvez transmettre des objets mutables/immuables comme argument dans la méthode de mise à jour.

REMARQUE : les doublons seront automatiquement supprimés.

Supprimer/Effacer des éléments d'un objet défini

Comme vous l'avez vu précédemment dans d'autres sujets sur la structure de données (liste, tuples, dictionnaire), pour set, vous pouvez également utiliser le mot-clé intégré « del » pour supprimer l'objet set de l'espace de noms (c'est-à-dire Mémoire).

Vous trouverez ci-dessous les méthodes permettant de définir des objets pour supprimer des éléments.

  • clear() – Effacera tous les éléments rendant l'ensemble vide. Cette méthode clear() est disponible dans d'autres structures de données offrant les mêmes fonctionnalités.
  • pop() – Supprime les éléments arbitraires.
  • discard(elem) – Si l'élément n'est pas trouvé dans l'objet défini, alors la méthode « discard() » ne générera aucune erreur.
  • remove(elem) – Identique à la méthode « discard() » mais elle déclenchera KeyError lorsqu'un élément n'est pas trouvé.

Définir les opérations

Set fournit des méthodes pour effectuer des opérations mathématiques telles que l'intersection, l'union, la différence et la différence symétrique. Vous vous souvenez du « Diagramme de Venn » de vos années de lycée ?

Nous examinerons les méthodes ci-dessous sur la manière dont les opérations mathématiques sont effectuées.

  • syndicat
  • intersection
  • intersection_update
  • différence_symétrique
  • symétrique_différence_update
  • différence
  • différence_mise à jour
  • estdisjoint
  • est un sous-ensemble
  • estsuperset

Union, Intersectio, Différence, Symmetric_Difference

  • union(*other) – Renvoie un nouvel ensemble avec des éléments de l'ensemble et tous les autres.
  • intersection(*other) – Renvoie un nouvel ensemble avec des éléments communs à l'ensemble et à tous les autres.
  • difference(*others) – Renvoie un nouvel ensemble avec des éléments de l'ensemble qui ne sont pas dans les autres.
  • symétrique_différence(autre) – Renvoie un nouvel ensemble avec des éléments dans l'ensemble ou dans l'autre mais pas les deux.

Intersection_Mise à jour

intersection_update(*others) – Mettez à jour l'ensemble, en ne conservant que les éléments qui s'y trouvent et tous les autres.

Mise à jour des différences

difference_update(*others) – Mettez à jour l'ensemble, en conservant uniquement les éléments qui y sont et tous les autres.

Symmetric_Difference_Update

symétrique_difference_update(other) – Mise à jour de l'ensemble, en conservant uniquement les éléments trouvés dans l'un des ensembles, mais pas dans les deux.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Renvoi True si l'ensemble n'a aucun élément en commun avec other. Les ensembles sont disjoints si et seulement si leur intersection est l'ensemble vide.
  • issubset() – Test si chaque élément de l'ensemble est dans un autre.
  • issuperset() – Test si chaque élément de l'autre est dans l'ensemble.

Méthode Copier()

Vous pouvez créer une copie identique d'un objet défini existant à l'aide de la méthode copy(). Cette méthode est également disponible pour d’autres types de structures de données comme une liste, un dictionnaire, etc.

Supprimez l'objet défini de l'espace de noms à l'aide d'un mot-clé « del » intégré.

Ensemble congelé

  • L'ensemble gelé est de type immuable. Une fois construit, vous ne pouvez pas ajouter, supprimer ou mettre à jour des éléments de la liste.
  • Les ensembles gelés étant immuables, ils peuvent être hachés et peuvent être utilisés comme « clé » pour les dictionnaires ou les éléments d'un autre objet d'ensemble.
  • L'ensemble gelé est construit à l'aide de la fonction « frozenset() ».
  • L'ensemble gelé fournit le même ensemble de méthodes par rapport à « set » comme union(), intersection, copy(), isdisjoint() etc.

Résumé

Dans cet article, vous avez vu ce qui est défini, la différence entre un ensemble et un ensemble gelé, comment créer et accéder aux éléments de l'ensemble, les méthodes d'ensemble, etc.