Definición y creación Acceso y uso Características y...
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.