definición y creación acceso y uso características y...

29
Ferran Juan Baruel Ciències de la Computació / 2017 Tipos de datos estructurados Diccionarios Definición y creación Acceso y uso Caracteríscas y Funciones

Upload: others

Post on 17-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

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ó

Ferran Juan BaruelCiències de la Computació / 2017

Ejercicios• De una lista de valores, crear su histograma gráfico.