Conjuntos.
Crear conjuntos en Python
La forma de crear un conjunto es usando el constructor de listas set o como literal
usando {<argumentos>}.
group_a = set(['Ana', 'Marcos', 'Carlos', 'Mario'])
group_b = {'Ana', 'Pedro', 'Carlos', 'Antonio'}
group_c = {'Ana', 'Antonio', 'Marcos', 'Pepe'}
all_students = group_a.union(group_b).union(group_c)
print(all_students)
{'Mario', 'Carlos', 'Pepe', 'Ana', 'Antonio', 'Marcos', 'Pedro'}
a_and_b = group_a.intersection(group_b)
print(a_and_b)
{'Ana', 'Carlos'}
a_and_c = group_a.intersection(group_c)
print(a_and_c)
{'Marcos', 'Ana'}
b_and_c = group_b.intersection(group_c)
print(b_and_c)
{'Ana', 'Antonio'}
common_all = group_a.intersection(group_b).intersection(group_c)
print(common_all)
{'Ana'}
Métodos disponibles sobre set
A continuación se muestran los métodos disponibles para conjuntos:
Método Descripción Ejemplo
add Añade un elemento al final del conjunto set.append(5)
clear Elimina toda la información del conjunto set.clear()
copy Devuelve una copia del conjunto set.copy()
Devuelve las diferencias entre un conjunto
difference set.difference(st2)
sobre otro
difference_up set.difference_update(s
Aplica las diferencias al primer conjunto
date t2)
Intenta eliminar un elemento del conjunto,
discard set.discard('e')
exista o no
Devuelve un conjunto con los elementos que
intersection set.intersection(st2)
están en otros dos
intersection_u Simila a intersection pero actualizando el set.intersection_update
pdate primer conjunto con el resultado (st2)
Devuelve True si la intersección de los
isdisjoint set.isdisjoint(st2)
conjuntos vacía
Devuelve True si el otro conjunto contiene el
issubset set.issubset(st2)
primero
Devuelve True si el primer
issuperset set.issuperset(st2)
conjunto contiene el segundo
Devuelve y elimina un
pop elemento arbitrario o devuelve set.pop()
un error si está vacío
Intenta eliminar un elemento
remove del conjunto, si no existe set.remove(2)
eleva un error
Devuelve los elementos que
symmetric_difference están exactamente en uno de set.symmetric_difference(st2)
los sets
Similar a
symmetric_difference symmetric_difference pero set.symmetric_difference_upda
_update actualizando el primer te(st2)
conjunto
Devuelve un conjunto con
union todos los elementos de set.union(st2)
ambos conjuntos
Actualiza el primer conjunto
update set.update(st2)
con otro
Operaciones de álgebra de
conjuntos en Python
A continuación se muestran ejemplos de uso del álgebra de conjuntos, para el cual
usaremos el ejemplo de los estudiantes en los grupos.
group_a.union(group_b)
Out[29]: {'Ana', 'Antonio', 'Carlos', 'Marcos', 'Mario', 'Pedro'}
group_a.difference(group_b)
Out[30]: {'Marcos', 'Mario'}
group_a.intersection(group_b)
Out[31]: {'Ana', 'Carlos'}
group_a.isdisjoint(group_b)
Out[32]: False
group_a.isdisjoint({1, 2})
Out[33]: True
group_a.issubset(group_b)
Out[34]: False
group_a.issubset({'Marcos'})
Out[35]: False
group_a.issubset(group_a)
Out[36]: True
group_a.issuperset(group_a)
Out[37]: True
group_a.issuperset(group_b)
Out[38]: False
group_a.issuperset({'Marcos'})
Out[39]: True
group_a.symmetric_difference(group_b)
Out[40]: {'Antonio', 'Marcos', 'Mario', 'Pedro'}