From 40f49dc37e46d3631fda37a99d790422c10cffda Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Thu, 21 Nov 2019 14:03:29 +0100 Subject: add sets to Types --- src/02_datos.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/02_datos.md b/src/02_datos.md index 981a359..fb5f451 100644 --- a/src/02_datos.md +++ b/src/02_datos.md @@ -338,6 +338,29 @@ seguida. 8.0 ``` +#### Set + +Los *sets* son muy similares a las listas y tuplas, pero con dos +peculiaridades: + +- Sus valores son únicos. No pueden repetirse. +- No están ordenados + +Estas dos características tan estrictas, lejos de ser limitantes, aportan una +mejora radical en su rendimiento. Buscar elementos en un set es extremadamente +eficiente y se usan principalmente para esa labor. + +Si quieres validar en algún momento que un valor es válido para un conjunto de +valores, el set es el tipo de dato que estás buscando. + +Los sets se declaran también usando las llaves, como un diccionario, pero no +usan claves. + +``` +>>> {"a", "b", 1} +{'a', 1, 'b'} +``` + ## Conversión Ahora que conoces los valores sé que quieres saber cómo cambiar de uno a otro. @@ -371,12 +394,19 @@ ValueError: invalid literal for int() with base 10: 'hola' [1, 2, 3] >>> dict((("a", 1),("b", 2))) {'a': 1, 'b': 2} +>>> set([1,2,2,3,4,4,4,4,4]) +{1, 2, 3, 4} ``` Los propios nombres de las funciones son bastante representativos de a qué tipo convierten. Si quieres saber más puedes ejecutar `help(nombre)` y ver qué te cuenta la ayuda. +> NOTA: Fíjate que si conviertes una secuencia de valores repetidos a *set* +> únicamente almacena los que no se repiten. Es uno de los usos más comunes que +> tienen. + + ## Operadores Ahora que sabes el contexto en el que vas a jugar, necesitas poder alterar los -- cgit v1.2.3