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, cómo se diferencia de otra estructura de datos en Python, cómo crear objetos de conjunto, eliminar objetos de conjunto y métodos de objetos de conjunto.

  • Un objeto establecido es una colección desordenada de distintos objetos hash.
  • Establecer elimina automáticamente los elementos duplicados del objeto.
  • Dado que los objetos establecidos no están ordenados, no se admite ninguna operación de indexación y división.

Actualmente hay dos tipos de conjuntos integrados.

  1. conjunto: dado que es mutable, no tiene valor hash y no se puede utilizar como clave de diccionario ni como elemento de otro conjunto.
  2. frozenset - inmutable y codificable - su contenido no se puede alterar una vez creado; por lo tanto, se puede utilizar como clave de diccionario o como elemento de otro conjunto.

Construir conjunto de objetos

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 de 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 de conjuntos disponibles.

Agregar elementos para establecer un objeto

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

Hablemos de agregar y actualizar el método de dos conjuntos.

  • método add (elem): este método agrega un solo 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 de estructura de datos (diccionario), para el conjunto también puede utilizar la palabra clave incorporada "del" para eliminar el objeto del conjunto 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 dejando 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, 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. ¿Recuerda el "diagrama de Venn" de sus días en la escuela secundaria?

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

  • unión
  • intersección
  • intersection_update
  • diferencia_simétrica
  • symmetric_difference_update
  • diferencia
  • difference_update
  • no está unido
  • issubset
  • issuperset

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

intersection_update (* otros) - Actualiza el conjunto, manteniendo solo los elementos que se encuentran en él y todos los demás.

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

symmetric_difference_update (otro): actualiza el conjunto, manteniendo solo los elementos que se encuentran en cualquiera de los conjuntos, pero no en ambos.

  • isdisjoint (otro): devuelve True si el conjunto no tiene elementos en común con otros. Los conjuntos son disjuntos si y solo si su intersección es el conjunto vacío.
  • issubset(): prueba si todos los elementos del conjunto están en otro.
  • issuperset(): prueba si todos los elementos del otro están en el conjunto.

Puede crear una copia idéntica de un objeto de conjunto existente utilizando el método copy(). Este método también está disponible para otros tipos de estructura de datos como lista, diccionario, etc.

Elimine el objeto establecido del espacio de nombres utilizando una palabra clave incorporada "del".

  • El conjunto congelado es de tipo inmutable. Una vez construido, no puede agregar, eliminar o actualizar elementos de la lista.
  • Los conjuntos congelados son inmutables y se pueden usar como una "clave" para diccionarios o elementos para otro objeto de conjunto.
  • El conjunto congelado se construye usando 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.

En este artículo ha visto lo que se establece, la diferencia entre el conjunto y el conjunto congelado, cómo crear y acceder a los elementos del conjunto, métodos de conjunto, etc.