diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2020-07-21 19:33:34 +0200 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2020-07-21 19:33:34 +0200 |
commit | f4f603af21ef8e747213b028f19d3fa489a00f72 (patch) | |
tree | 33cc71ac35e91cdc0b83421b14f534c4d3703d88 | |
parent | 30076ba4fc5f538b7630648b527fea1943e22732 (diff) |
Corrections
-rw-r--r-- | es/02_datos.md | 27 | ||||
-rw-r--r-- | es/03_estructura.md | 14 |
2 files changed, 25 insertions, 16 deletions
diff --git a/es/02_datos.md b/es/02_datos.md index b641a79..8400737 100644 --- a/es/02_datos.md +++ b/es/02_datos.md @@ -325,10 +325,12 @@ Además, los diccionarios no están ordenados así que no se puede suponer que l claves siempre van a estar en el orden en el que se introducen. Para declarar diccionarios es necesario indicar qué claves se quieren usar. Las -claves son de tipo string. En el caso de los diccionarios, además, se utilizan -llaves para definirlos. El acceso a sus valores se realiza con los corchetes, -del mismo modo que en las listas, pero es necesario seleccionar la clave para -acceder. +claves pueden ser de cualquier tipo que se considere *hasheable*[^hasheable], +concepto que se analiza más adelante, aunque normalmente su usan cadenas de +caracteres como claves. + +El acceso a sus valores se realiza con los corchetes, del mismo modo que en las +listas, pero es necesario seleccionar la clave para acceder. Los diccionarios, al igual que las listas, son mutables. Como veremos en seguida. @@ -336,17 +338,23 @@ seguida. ``` python >>> {"nombre": "Guido", "apellido": "Van Rossum", "popularidad": 8.0} {'nombre': 'Guido', 'apellido': 'Van Rossum', 'popularidad': 8.0} ->>> {"nombre": "Guido", "apellido": "Van Rossum", "popularidad": 8.0}["popularidad"] +>>> {"nombre": "Guido", "apellido": "Van Rossum", + "popularidad": 8.0}["popularidad"] 8.0 ``` +[^hasheable]: Los diccionarios son una implementación del concepto conocido + como *hashmap* o *hash-table*. Su funcionamiento interno requiere que las + claves puedan procesarse mediante una función de *hash*. + #### Set -Los *sets* son muy similares a las listas y tuplas, pero con dos +Los *sets* son muy similares a las listas y tuplas, pero con varias peculiaridades: - Sus valores son únicos. No pueden repetirse. -- No están ordenados +- No están ordenados. +- No pueden accederse mediante los corchetes (`[]`). Estas dos características tan estrictas, lejos de ser limitantes, aportan una mejora radical en su rendimiento. Buscar elementos en un set es extremadamente @@ -363,6 +371,11 @@ usan claves. {'a', 1, 'b'} ``` +Otro de los usos más habituales de los sets es el de aplicar teoría de +conjuntos (*set* significa «conjunto»). Los sets pueden combinarse forma +eficiente mediante uniones (*union*), diferencias (*difference*), +intersecciones (*intersection*) y otros métodos descritos en esta teoría. + ## Conversión Ahora que conoces los valores sé que quieres saber cómo cambiar de uno a otro. diff --git a/es/03_estructura.md b/es/03_estructura.md index 9d8cd5e..ba9abdb 100644 --- a/es/03_estructura.md +++ b/es/03_estructura.md @@ -215,25 +215,21 @@ Como mejor se entiende es con unos ejemplos, en este caso vamos usar la función inclusive). Usando la ayuda puedes saber más sobre la función `range`. -> TODO: -> Mejorar este ejemplo, es demasiado simple - ``` python >>> [i**2 for i in range(0, 10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> tuple(i**2 for i in range(0, 10)) (0, 1, 4, 9, 16, 25, 36, 49, 64, 81) ->>> { str(i): i**2 for i in range(0, 10)} -{'0': 0, '1': 1, '2': 4, '3': 9, '4': 16, '5': 25, '6': 36, '7': 49, '8': 64, -'9': 81} - +>>> { i: i**2 for i in range(0, 10)} +{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} >>> [i**2 for i in range(0, 10) if i > 5 ] [36, 49, 64, 81] ``` Como ves, en el caso de los diccionarios es necesario crear las claves también. -En este caso las creamos convirtiendo el propio número a string con la función -`str`. +En este caso las creamos desde el propio número, así que se comportará de forma +similar a una lista, ya que los índices serán numéricos. Eso sí, las claves no +estarán ordenadas. En los primeros ejemplos, de una secuencia de números hemos creado una secuencia de números al cuadrado. Pero las *list comprehensions* son más |