Definición y creación Acceso y uso Características y...

Post on 17-Aug-2021

11 views 0 download

Transcript of Definición y creación Acceso y uso Características y...

Ferran Juan BaruelCiències de la Computació / 2017

Tipos de datos estructuradosDiccionarios

Definición y creaciónAcceso y uso

Características y Funciones

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.

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}

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.

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

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:

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.

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

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.

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.

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)

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

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

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

Ferran Juan BaruelCiències de la Computació / 2017

Métodos de los diccionarios

Ferran Juan BaruelCiències de la Computació / 2017

Métodos de los diccionarios

Ferran Juan BaruelCiències de la Computació / 2017

Métodos de los diccionarios

Ferran Juan BaruelCiències de la Computació / 2017

Métodos de los diccionarios

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

Ferran Juan BaruelCiències de la Computació / 2017

Copia y aliasing

Ferran Juan BaruelCiències de la Computació / 2017

Métodos de los diccionarios

Ferran Juan BaruelCiències de la Computació / 2017

Ejercicios

• Dadas dos listas, crear un diccionario– Con el recorrido de las dos listas

Ferran Juan BaruelCiències de la Computació / 2017

Ejercicios

• Dadas dos listas, crear un diccionario– Con la función zip()

Ferran Juan BaruelCiències de la Computació / 2017

Ejercicios• Calcular con un diccionario la frecuencia de aparición de vocales en una

frase

Ferran Juan BaruelCiències de la Computació / 2017

Ejercicios• Calcular con un diccionario la frecuencia de aparición de

números en una matriz

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

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'

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

Ferran Juan BaruelCiències de la Computació / 2017

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