summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2019-11-21 14:03:29 +0100
committerEkaitz Zarraga <ekaitz@elenq.tech>2019-11-21 14:03:29 +0100
commit40f49dc37e46d3631fda37a99d790422c10cffda (patch)
tree0f8310ddf50139cf3a809ef591cb9de15107919a
parent44bc3919b6c995e7b08826a0eca8aef5a22e43e7 (diff)
add sets to Types
-rw-r--r--src/02_datos.md30
1 files changed, 30 insertions, 0 deletions
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