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 o 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.
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.
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.
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.
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.
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!
Excelente comentario!!!!!
¡Hola Alberto! Gracias por leernos.