Búsqueda de sitios web

Aprenda la estructura de datos de Python Set/Frozenset - Parte 4


En esta Parte 4 de la serie Estructura de datos de Python, discutiremos qué es un conjunto, en qué se diferencia de otras estructuras de datos en Python, cómo crear objetos de conjunto, eliminar objetos de conjunto y métodos de objetos de conjunto. .

  • Un objeto conjunto es una colección desordenada de objetos hash distintos.
  • Set elimina automáticamente los elementos duplicados del objeto.
  • Dado que los objetos establecidos están desordenados, no se admiten operaciones de indexación ni división.

Actualmente hay dos tipos de conjuntos integrados.

  1. conjunto: dado que es mutable, no tiene valor hash y no puede usarse como clave de diccionario ni como elemento de otro conjunto.
  2. frozenset – Inmutable y hashable – su contenido no se puede modificar después de su creación; por lo tanto, puede utilizarse como clave de diccionario o como elemento de otro conjunto.

Objeto de conjunto de construcción

Cree un conjunto usando el método constructor “set()” o usando llaves con comas separando los elementos “{a,b,c}”.

NOTA: no puede construir un objeto conjunto a través de llaves vacías ya que creará un objeto de diccionario.

Establecer métodos

Utilice la función incorporada “dir()” para enumerar los métodos y atributos disponibles.

Agregar elementos para establecer un objeto

Como ya se dijo, set es un tipo mutable. Puede agregar, eliminar y actualizar su objeto establecido una vez creado.

Hablemos de dos métodos establecidos agregar y actualizar.

  • método add(elem): este método agrega un único elemento a un objeto establecido.
  • método de actualización(*otros):: este método agrega varios elementos a un objeto establecido. Puede pasar objetos mutables/inmutables como argumento en el método de actualización.

NOTA: Los duplicados se eliminarán automáticamente.

Eliminar/borrar elementos de un objeto establecido

Como ha visto anteriormente en otro tema sobre estructura de datos (lista, tuplas, diccionario), para set también puede usar la palabra clave incorporada “del” para eliminar el objeto set del espacio de nombres (es decir, Memoria).

A continuación se muestran los métodos para establecer objetos para eliminar elementos.

  • clear(): borrará todos los elementos que dejen el conjunto vacío. Este método clear() está disponible en otras estructuras de datos que proporcionan la misma funcionalidad.
  • pop(): elimina elementos arbitrarios.
  • descartar(elem): si el elemento no se encuentra en el objeto establecido, entonces el método “descartar()” no generará ningún error.
  • remove(elem): igual que el método “discard()”, pero generará KeyError cuando no se encuentre un elemento.

Establecer operaciones

Set proporciona métodos para realizar operaciones matemáticas como intersección, unión, diferencia y diferencia simétrica. ¿Recuerdas el “diagrama de Venn” de tu época de escuela secundaria?

Echaremos un vistazo a los siguientes métodos sobre cómo se realizan las operaciones matemáticas.

  • Unión
  • intersección
  • actualización_intersección
  • diferencia_simétrica
  • actualización_diferencia_simétrica
  • diferencia
  • actualización_diferencia
  • es disjunto
  • es subconjunto
  • es superconjunto

Unión, Intersección, Diferencia, Diferencia_simétrica

  • union(*other): devuelve un nuevo conjunto con elementos del conjunto y todos los demás.
  • intersección(*other): devuelve un nuevo conjunto con elementos comunes al conjunto y a todos los demás.
  • diferencia(*otros): devuelve un nuevo conjunto con elementos en el conjunto que no están en los demás.
  • diferencia_simétrica(otro): devuelve un nuevo conjunto con elementos en el conjunto o en otro, pero no en ambos.

Intersección_Actualización

intersection_update(*others): actualiza el conjunto, manteniendo solo los elementos que se encuentran en él y todos los demás.

Actualización de diferencias

difference_update(*others) – Actualiza el conjunto, manteniendo solo los elementos que se encuentran en él y todos los demás.

Actualización_de_diferencia_simétrica

symmetric_difference_update(other) – Actualiza el conjunto, manteniendo solo los elementos que se encuentran en cualquier conjunto, pero no en ambos.

Isdisjunto, Issubconjunto, Issuperconjunto

  • isdisjoint(other) – Devuelve True si el conjunto no tiene elementos en común con other. Los conjuntos son disjuntos si y sólo si su intersección es el conjunto vacío.
  • issubset() – Prueba si cada elemento del conjunto está en otro.
  • issuperset() – Prueba si cada elemento del otro está en el conjunto.

Método Copiar()

Puede crear una copia idéntica del objeto establecido existente utilizando el método copiar(). Este método también está disponible para otros tipos de estructuras de datos como listas, diccionarios, etc.

Elimine el objeto establecido del espacio de nombres usando una palabra clave “del” incorporada.

Conjunto congelado

  • El conjunto congelado es de tipo inmutable. Una vez construido, no puede agregar, eliminar ni actualizar elementos de la lista.
  • Los conjuntos congelados, al ser inmutables, son hash y se pueden utilizar como “clave” para diccionarios o elementos de otro objeto de conjunto.
  • El conjunto congelado se construye utilizando la función “frozenset()”.
  • El conjunto congelado proporciona el mismo conjunto de métodos en comparación con "conjunto" como unión(), intersección, copia(), isdisjoint(), etc.

Resumen

En este artículo has visto qué es un conjunto, la diferencia entre un conjunto y un conjunto congelado, cómo crear y acceder a los elementos del conjunto, los métodos del conjunto, etc.