Definición y creación Acceso y uso Características y...
Transcript of Definición y creación Acceso y uso Características y...
![Page 1: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/1.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Tipos de datos estructuradosDiccionarios
Definición y creaciónAcceso y uso
Características y Funciones
![Page 2: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/2.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Diccionarios • Un Diccionario es una estructura de datos y un tipo de dato en
Python con características especiales que nos permite almacenar cualquier tipo de valor como enteros, cadenas, listas, etc.
• Estos diccionarios nos permiten además identificar cada elemento por una clave (Key).
• Los diccionarios no mantienen ningún orden, son un conjunto desordenado de parejas de clave:valor, con el requisito de que las claves son únicas e inmutables dentro del diccionario.
• A diferencia de las secuencias, que son indexadas por un rango de números ( posición ) los diccionarios son indexados por claves, que pueden ser de cualquier tipo inmutable; cadenas o números siempre pueden ser claves.
![Page 3: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/3.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Diccionarios • Los diccionarios se subscriben entre llaves. • La lista de elementos clave:valor dentro del
diccionario se colocan separados por comas. Las claves son únicas, por lo que no existen claves repetidas
dic = {clave_1:valor_1, clave_2:valor_2, …, clave_n:valor_n}
![Page 4: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/4.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Definición y creación
• Directamente, asociando a una variable un valor de diccionario:
• A través de la función dict(matriz) donde la matriz es una matriz de n filas y 2 columnas. La primera columna es la clave y la segunda columna es el valor.
![Page 5: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/5.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Definición y creación
• Igual que el anterior, pero utilizando la función zip creando una matriz a partir de 2 listas de elementos
![Page 6: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/6.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Añadir elementos.
• A diferencia de las listas, que tienen las funciones list.append() y los operadores de suma, los diccionarios, al ser un conjunto no ordenado de elementos, solo se pueden añadir elementos indicando el nombre del diccionario, la nueva clave y su valor:
![Page 7: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/7.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Añadir elementos. La acción update()
• También se pueden añadir elementos a un diccionario a traves de la acción dict.update(dict2) en el que se actualiza el diccionario dict con los elementos de un nuevo diccionario dict2.
• Sólo se utiliza si queremos fusionar dos diccionarios en uno o queremos añadir a un diccionario los elementos de un segundo diccionario.
• Al actualizar un diccionario con los elementos de un segundo diccionario, se tienen en cuenta dos casos: Si hay claves repetidas, dicha clave tomará el valor del diccionario dict2 Si no hay claves repetidas, de añadirán las claves al diccionario.
![Page 8: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/8.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Borrar elementos.
• Podemos eliminar un conjunto de clave:valor utilizando la orden del indicando el diccionario y entre corchetes, la clave a eliminar
![Page 9: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/9.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Acceso al diccionario.
• Podemos acceder a un elemento del diccionario:– Indicando la variable de diccionario y entre corchetes
su clave. En caso de no existir la clave, el programa devuelve un KeyError indicando la clave que no existe.
![Page 10: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/10.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Recorrer un diccionario.
• Un diccionario se recorre de la misma manera que se recorre la lista, a través de sus elementos o a través de sus vistas.
![Page 11: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/11.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Recorrido del diccionario.
• Podemos realizar también el recorrido del diccionario:– Accediendo a las vistas del diccionario:– dict.keys() : a través de sus claves (por defecto)
![Page 12: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/12.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Recorrido del diccionario.
• Podemos realizar también el recorrido del diccionario:– dict.values(): a través de sus valores
![Page 13: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/13.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Recorrido del diccionario.
• Podemos realizar también el recorrido del diccionario:– Accediendo a las vistas del diccionario:– dict.items(): a través de las tuplas (clave,valor) del
diccionario
![Page 14: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/14.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionariosOperación Resultado
len(d) Devuelve el número de elementos del diccionario.
d[key] Devolver el elemento del diccionario correspondiente a la clave key. Provoca un error si la clave no está en el diccionario.
d[key] = value Si key no existe, crea una nueva clave y le asigna value. Si key existe, acrtualiza el valor a value.
del d[key] Elimina la clave key del diccionario. devuelve un error si la clave no existe
key in d Devuelve True si key es una clave del diccionario, False al contrario.
key not in d Equivalente a not key in d
dic.iter(d) devuelve un iterador sobre las claves del diccionario
dic.clear() Elimina todas las claves del diccionario
dic.copy() Devuelve una copia superficial del diccionario
dic.get(key[, def]) Devuelve el valor de la clave key si key existe. Si la clave no existe, devuelve def. Si def no se indica, devuelve None.
dic.items() Devuelve los ítems del diccionario en una lista de tuplas (clave, valor).
dic.keys() Devuelve las claves del diccionario.
dic.update(otro) Añade al diccionario con los datos de otro diccionario. Si la clave ya existe, actualiza su valor. Si no existe, crea una nueva.
dic.values() Devuelve los valores del diccionario
![Page 15: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/15.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionarios
![Page 16: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/16.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionarios
![Page 17: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/17.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionarios
![Page 18: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/18.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionarios
![Page 19: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/19.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Copia y aliasing
• Al igual que en las listas de listas, la copia de los diccionarios podrá hacerse con la ación dict.copy() sólo si en los valores hay valores simples(string,enteros float o boolean)
• Si en los valores hay listas o variables estructuradas, debermos utilizar otros métodod o el método de deepcopy() del módulo copy
![Page 20: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/20.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Copia y aliasing
![Page 21: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/21.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Métodos de los diccionarios
![Page 22: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/22.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios
• Dadas dos listas, crear un diccionario– Con el recorrido de las dos listas
![Page 23: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/23.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios
• Dadas dos listas, crear un diccionario– Con la función zip()
![Page 24: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/24.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• Calcular con un diccionario la frecuencia de aparición de vocales en una
frase
![Page 25: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/25.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• Calcular con un diccionario la frecuencia de aparición de
números en una matriz
![Page 26: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/26.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• Calcular con un diccionario la frecuencia de aparición de números en
una lista y las posiciones donde aparece
![Page 27: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/27.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• Extraer una fecha y presentarla como fecha larga :• 27/12/2017 '27 de Diciembre de 2017'
![Page 28: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/28.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• De todas las posibles tiradas de dos dados, agrupar aquellas tiradas que tengan
el mismo valor
![Page 29: Definición y creación Acceso y uso Características y ...robert/teaching/EEBE/ferranTranspes/10... · Características y Funciones. Ferran Juan Baruel Ciències de la Computació](https://reader036.fdocuments.mx/reader036/viewer/2022081623/61415ab5a2f84929c304565e/html5/thumbnails/29.jpg)
Ferran Juan BaruelCiències de la Computació / 2017
Ejercicios• De una lista de valores, crear su histograma gráfico.