Python: Subconjuntos – Conjuntos disjuntos

Objetivo: implementar los conceptos de subconjuntos y conjuntos disjuntos en Python.

Vamos a ir concluyendo el tema de los conjuntos, que tengo interés en presentar pronto otra de las superestructuras fabulosas de Python, los diccionarios.

La teoría nos dice que A es subconjunto de B cuando A está incluido en B, que es lo mismo que decir que B contiene a A.

Para implementar estos conceptos en Python, disponemos de los operadores de comparación habituales:

== igual
!= distinto
>  mayor
>= mayor o igual
<  menor
<= menor o igual

A es un subconjunto de B cuando todos los elementos de A están incluidos en B, relación que expresamos por

A <= B

que es equivalente a

B >= A

Puede interesarte también la inclusión estricta:

A < B, que es lo mismo que decir B > A

Practiquemos estos operadores con los siguientes conjuntos:

>>> c1 = {1, 2, 3}
>>> c2 = {1, 2, 3}
>>> c3 = {1, 2, 3, 4, 5, 6}
>>> c4 = {2, 4, 6}
>>> c5 = {1, 3, 5}

Observa que c1 y c2 son iguales, pues contienen los mismos elementos

>>> c1 == c2
True

pero c2 y c3 no lo son:

>>> c2 != c3
True

Sin embargo, c2 es un subconjunto de c3, pues todos los elementos de aquel están incluidos en este:

>>> c2 <= c3
True

A su vez, c1 es un subconjunto de c2, aunque sean iguales:

>>> c1 <= c2
True

Pero no lo sería en sentido estricto:

>>> c1 < c2
False

El concepto de subconjunto también está disponible como método:

>>> c1.issubset(c3)
True

que debe leerse como c1 es subconjunto de c3,

y es lo mismo que

c1 <= c3

También puedes expresarlo del siguiente modo:

>>> c3.issuperset(c1)
True

que debes leerlo como c3 es superconjunto de c1, que es lo mismo que decir que c3 contiene a c1:

c3 >= c1

Para finalizar, unas palabras sobre el concepto de conjuntos disjuntos. Sabemos que dos conjuntos son disjuntos cuando no tienen elementos en común, es decir, su intersección es el conjunto vacío.

En el artículo anterior tratamos la intersección, así que ya tenemos recursos para practicar esto sobre los conjuntos c4 y c5, que como puedes observar, son disjuntos:

>>> c4 & c5 == set()
True

Recuerda que set() simboliza el conjunto vacío, y no {}, que sería un diccionario vacío, como veremos muy pronto.

Pero esta instrucción podría prestarse a error fácilmente: el uso de set() o el orden de evaluación de los operadores.

¿Qué tal esta otra, más sencilla?

>>> c4.isdisjoint(c5)
True

Se acerca el final del repaso que le estamos dando a los conjuntos en Python. En la próxima entrega presentaremos el tipo frozenset, conjunto congelado, que es como el tipo set, pero inmutable.

Qué trascendente ha sonado esta última palabra; me está entrando hasta frío…

Javier Montero Gabarró


Python: Subconjuntos – Conjuntos disjuntos


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies