06. Python: tipos de datos mutables (conjuntos)

Publicado por

Continuando con el tema de tipos de datos mutables, en esta nota les platicaré sobre los conjuntos en Python.

Set

Un conjunto es una colección de datos no ordenados que tiene como característica principal no incluir ningún elemento repetido.

conjunto = set(['1','2','3','4','5'])

Sintaxis

Para construir un conjunto en Python, se utiliza el constructor set y para delimitar el conjunto se pasa una colección.

conjunto = set(coleccion)

O bien encerrando los elementos con llaves {}.

conjunto = {elemento1, elemento2, ..., elementoN}

Para construir un conjunto vacío, se utiliza la siguiente sintaxis.

conjunto = set()

Si la colección que pasamos como argumento tiene elementos repetidos:

coleccion = ['1', '2', '2', '3', '3']

Este los eliminará en automático y nos devolverá lo siguiente:

conjunto = set(coleccion)
set(['1', '2', '3'])

También es posible pasarle como argumento cadenas de caracteres y el resultado será un conjunto con cada caracter como elementos.

conjunto = set("Coding or not")
set([' ', 'C', 'd', 'g', 'i', 'o', 'n', 'r', 't'])

Métodos

add() Agrega un el elemento al conjunto. No tiene efecto si ya existe el elemento en el conjunto.

clear() Elimina todos los elementos del conjunto.

copy() Regresa una copia superficial del conjunto.

difference() Regresa la diferencia de dos o más conjuntos como un nuevo conjunto.

Diferencia de conjuntos en Python

difference_update() Elimina todos los elementos de otro conjunto en este conjunto.

discard() Elimina un elemento del conjunto. No tiene efecto si no existe el elemento.

intersection() Regresa la intersección de dos o más conjuntos en un nuevo conjunto.

Intersección de conjuntos en Python

intersection_update() Actualiza un conjunto con la intersección de de sí mismo y otro conjunto.

isdisjoint() Regresa True si dos conjuntos contienen una intersección nula.

issubset() Informa si un conjunto contiene otro conjunto.

pop() Quita y devuelve un elemento arbitrario del conjunto. Devuelve un error si el conjunto está vacío.

remove() Quita un elemento del conjunto. Si no existe devuelve un error.

symmetric_difference() Regresa la diferencia simétrica de dos conjuntos en un nuevo conjunto.

Diferencia simétrica de conjuntos en Python

symetric_difference_update() Actualiza un conjunto con la diferencia simétrica de sí mismo y otro conjunto.

union() Regresa la unión de varios conjuntos como uno nuevo.

Unión de conjuntos en Python

update() Actualiza un conjunto con la unión de sí mismo y otros.

 

Ejemplos

>>> numeros = set(['1','2','3','4','5'])
>>> otros_numeros = set(['6','7','8','9','10'])
>>> numeros.add('11')
>>> print numeros
set(['11','1','3','2','5','4'])
>>> numeros.clear()
>>> print numeros
set([])
>>> numeros = otros_numeros.copy()
>>> print numeros
set(['9','8','6','7','10'])
>>> numeros.difference(otros_numeros)
set([])
>>> numeros.difference_update(otros_numeros)
>>> print numeros
set([])
>>> otros_numeros.discard('7')
>>> print otros_numeros
set(['9','8','10','6'])
>>> numeros = {'1','2','3','10'}
>>> numeros.intersection(otros_numeros)
set(['10'])
>>> numeros.intersection_update(otros_numeros)
>>> print numeros
set(['10'])
>>> numeros.isdisjoint(otros_numeros)
False
>>> numeros.issubset(otros_numeros)
True
>>> print otros_numeros
set(['9','8','10','6'])
>>> otros_numeros.pop()
'9'
>>> print otros_numeros
set(['8','10','6'])

>>> print numeros
set(['10'])
>>> numeros.remove('3')
Traceback (most recent call last):
    File "", line 1, in
KeyError: '3'
>>> numeros.remove('10')
>>> print numeros
set([])

>>> numeros = {'1','2','3','10'}
>>> otros_numeros = {'6','10','5'}
>>> numeros.symmetric_difference(otros_numeros)
set(['1', '3', '2', '5', '6'])

>>> numeros.symmetric_difference_update(otros_numeros)
>>> print numeros
set(['1', '3', '2', '5', '6'])
>>> numeros.union(otros_numeros)
set(['10', '1', '3', '2', '5', '6'])
>>> numeros.update(otros_numeros)
>>> print numeros
set(['10', '1', '3', '2', '5', '6'])
>>> print numeros
set(['10', '1', '3', '2', '5', '6'])
>>> nuevos_numeros = numeros.copy()
>>> nuevos_numeros.add('15')
>>> print numeros
set(['10', '1', '3', '2', '5', '6'])
>>> print nuevos_numeros
set(['1', '10', '3', '2', '5', '6', ’15’])

De igual forma que los tipos de datos en Python mencionados en las notas pasadas, manipular conjuntos mutables es muy fácil e intuitivo, ya que Python cuenta con los métodos esenciales para trabajar sobre conjuntos. En la siguiente entrega explicaré validación de datos en Python. ¡Hasta la próxima!

 

2 comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *