Conjuntos
Contents
Conjuntos#
Introducción#
Los conjuntos constituyen una estructura especial en Python. Los conjuntos no permiten elementos repetidos y pueden ser mutables o inmutables.
Conjuntos #
Un conjunto es una colección de objetos inmutables no ordenada. Se crea con corchetes ‘{}’. El conjunto en si mismo es mutable, peros cada elemento individualmente no puede ser modificado. Por otro lado los conjuntos puede ser operados como hace comúnmente en matemáticas con el álgebra de conjuntos. Veamos nuestro primer ejemplo.
frutas = {'banano','naranja', 'tomate'}
print(type(frutas))
<class 'set'>
Operaciones con conjuntos#
print('banano' in frutas)
print('fresa' in frutas)
True
False
frutas.add('fresa')
print(frutas)
{'tomate', 'naranja', 'fresa', 'banano'}
No puede haber elementos repetidos#
frutas.add('banano')
print(frutas)
{'tomate', 'naranja', 'fresa', 'banano'}
Operaciones usuales#
verduras = {'cebolla', 'tomate'}
print( verduras)
{'tomate', 'cebolla'}
# intersección
print( frutas & verduras)
{'tomate'}
# unión
print( frutas | verduras)
{'tomate', 'naranja', 'cebolla', 'fresa', 'banano'}
# diferencia
print( frutas - verduras)
{'naranja', 'fresa', 'banano'}
# diferencia simétrica
print( frutas ^ verduras)
{'cebolla', 'naranja', 'fresa', 'banano'}
Método |
Descripción |
---|---|
add(e) |
Añade un elemento al conjunto. |
clear() |
Elimina todos los elementos del conjunto. |
copy() |
Devuelve una copia superficial del conjunto. |
difference(iterable) |
Devuelve la diferencia del conjunto con el iterable como un conjunto nuevo. |
difference_update(iterable) |
Actualiza el conjunto tras realizar la diferencia con el iterable. |
discard(e) |
Elimina, si existe, el elemento del conjunto. |
intersection(iterable) |
Devuelve la intersección del conjunto con el iterable como un conjunto nuevo. |
intersection_update(iterable) |
Actualiza el conjunto tras realizar la intersección con el iterable. |
isdisjoint(iterable) |
Devuelve True si dos conjuntos son disjuntos. |
issubset(iterable) |
Devuelve True si el conjunto es subconjunto del iterable. |
issuperset(iterable) |
Devuelve True si el conjunto es superconjunto del iterable. |
pop() |
Obtiene y elimina un elemento de forma aleatoria del conjunto. |
remove(e) |
Elimina el elemento del conjunto. Si no existe lanza un error. |
symmetric_difference(iterable) |
Devuelve la diferencia simétrica del conjunto con el iterable como un conjunto nuevo. |
symmetric_difference_update(iterable) |
Actualiza el conjunto tras realizar la diferencia simétrica con el iterable. |
union(iterable) |
Devuelve la unión del conjunto con el iterable como un conjunto nuevo. |
update(iterable) |
Actualiza el conjunto tras realizar la unión con el iterable. |
Frozen sets#
Es posible crear conjuntos en donde los elementos no son intercambiables. Esto funciona como conjunto, pero ahora no es posible modificar los elementos del conjunto.
Veamos el ejemplo
frozenset(iterable)
fruta_congelada = frozenset(frutas)
fruta_congelada.add('pera')
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/tmp/ipykernel_2627/2088432385.py in <module>
----> 1 fruta_congelada.add('pera')
AttributeError: 'frozenset' object has no attribute 'add'