Apreneu l'estructura de dades Python Set/Frozenset - Part 4


En aquesta part 4 de la sèrie d'estructura de dades de Python, parlarem de què és un conjunt, com es diferencia d'una altra estructura de dades a Python, com crear objectes de conjunt, suprimir objectes de conjunt i mètodes d'objectes de conjunt.

  • Un objecte conjunt és una col·lecció no ordenada d'objectes hashable diferents.
  • Set elimina automàticament els elements duplicats de l'objecte.
  • Com que els objectes establerts no estan ordenats, no s'admet cap operació d'indexació i tall.

Actualment hi ha dos tipus de conjunts integrats.

  1. conjunt: com que és mutable, no té valor hash i no es pot utilitzar com a clau de diccionari ni com a element d'un altre conjunt.
  2. frozenset – Immutable i hashable – el seu contingut no es pot alterar després de crear-lo; per tant, es pot utilitzar com a clau de diccionari o com a element d'un altre conjunt.

Construeix un objecte conjunt

Creeu un conjunt mitjançant el mètode constructor set() o utilitzant claus amb comes que separen els elements {a,b,c}.

NOTA: no podeu construir un objecte definit amb claus buides, ja que crearà un objecte de diccionari.

Establir mètodes

Utilitzeu la funció dir() integrada per llistar els mètodes i atributs de conjunt disponibles.

Afegeix elements per establir l'objecte

Com ja s'ha dit, set és un tipus mutable. Podeu afegir, suprimir i actualitzar el vostre objecte definit un cop creat.

Parlem de dos mètodes conjunts per afegir i actualitzar.

  • Mètode add(elem): aquest mètode afegeix un sol element a un objecte conjunt.
  • Mètode d'actualització(*altres): aquest mètode afegeix diversos elements a un objecte definit. Podeu passar objectes mutables/immutables com a argument al mètode d'actualització.

NOTA: Els duplicats s'eliminaran automàticament.

Elimina/Esborra elements d'un objecte conjunt

Com heu vist anteriorment en un altre tema d'estructura de dades (diccionari), també podeu utilitzar la paraula clau integrada del per eliminar l'objecte establert de l'espai de noms (és a dir, Memòria).

A continuació es mostren els mètodes per establir objectes per eliminar elements.

  • clear() – Esborrarà tots els elements que fan que el conjunt estigui buit. Aquest mètode clear() està disponible en altres estructures de dades que proporcionen la mateixa funcionalitat.
  • pop() – Elimina elements arbitraris.
  • discard(elem): si l'element no es troba a l'objecte definit, el mètode “discard()” no generarà cap error.
  • remove(elem) – Igual que el mètode “discard()”, però generarà KeyError quan no es trobi un element.

Establir operacions

Set proporciona mètodes per realitzar operacions matemàtiques com ara intersecció, unió, diferència i diferència simètrica. Recordeu el diagrama de Venn dels vostres dies de secundària?

Veurem els mètodes següents sobre com es realitzen les operacions matemàtiques.

  • sindicat
  • intersecció
  • intersection_update
  • diferència_simètrica
  • actualització_diferència_simètrica
  • diferència
  • difference_update
  • és disjunt
  • issubset
  • issuperset

  • unió(*altre): retorna un conjunt nou amb elements del conjunt i tots els altres.
  • intersecció(*altre): retorna un conjunt nou amb elements comuns al conjunt i a tots els altres.
  • diferència(*altres): retorna un conjunt nou amb elements del conjunt que no es troben als altres.
  • symmetric_difference(other): retorna un conjunt nou amb elements del conjunt o d'un altre, però no dels dos.

intersection_update(*others) – Actualitza el conjunt, conservant només els elements que s'hi troben i tots els altres.

difference_update(*others) : actualitza el conjunt mantenint només elements que hi hi hi hi hi hi i els altres .

symmetric_difference_update(other) – Actualitzeu el conjunt, mantenint només elements que es troben en un conjunt però no en ambdós.

  • isdisjoint(other) – Retorna True si el conjunt no té elements en comú amb altres. Els conjunts són disjunts si i només si la seva intersecció és el conjunt buit.
  • issubset() – Prova si cada element del conjunt es en un altre.
  • issuperset() – Prova si cada element de l'altre es en el conjunt.

Podeu crear una còpia idèntica de l'objecte de conjunt existent mitjançant el mètode copy(). Aquest mètode també està disponible per a altres tipus d'estructura de dades com ara llista, diccionari, etc.

Suprimiu l'objecte definit de l'espai de noms mitjançant una paraula clau integrada del.

  • El conjunt congelat és de tipus immutable. Un cop construït, no podeu afegir, eliminar ni actualitzar elements de la llista.
  • Els conjunts congelats immutables es poden utilitzar com a clau per a diccionaris o elements per a un altre objecte conjunt.
  • El conjunt congelat es construeix mitjançant la funció “frozenset()”.
  • El conjunt congelat proporciona el mateix conjunt de mètodes en comparació amb conjunt, com ara union(), intersecció, copy(), isdisjoint() etc.

En aquest article heu vist què està configurat, la diferència entre el conjunt i el conjunt congelat, com crear i accedir als elements del conjunt, els mètodes de configuració, etc.