Inicio : Python para todos.

Python

Python para todos

Es un curso diseñado para estudiantes e impacientes en el mundo de la programación. No existe un límite de edad ni se requiere de estudios previos para comenzar.

Inicio : Python para todos.

Lección 15: Diccionarios

  • Dificultad: Fácil.
  • Objetivo: Aprender la estructura de un diccionario, crear y acceder a su contenido, usar los métodos más utilizados en los diccionarios, modificar y borrar el contenido de uno.
Inicio : Python para todos.

Definición de diccionario

Definición. Son objetos que contienen una lista de parejas de elementos. En cada pareja un elemento es clave, este no puede repetirse y esta relacionado a un valor; por tanto, se tiene una clave y un valor.

Para crear un diccionario se requiere de las llaves de apertura y cierre {}, dentro de las llaves se usa la relación clave y valor, separados por dos puntos. Un ejemplo de un diccionario se muestra en el bloque siguiente:

var = {'Curso':'Python', 'Leccion': 15, 'Tema': 'Diccionarios' }
Inicio : Python para todos.

Sintaxis

Un ejemplo de un diccionario completo es el siguiente:

md = {
  1: {
      'Curso':'Dibujo I',
      'Lecciones': 10,
    },
  2: {
      'Curso':'Dibujo II',
      'Lecciones': 7,
    } 
}
Inicio : Python para todos.

Convertir una tupla a un diccionario con la función dict()

Mediante la función dict() es posible convertir una tupla a un diccionario. El diccionario de la diapositiva anterior presenta la misma estructura pero ahora como tupla y para convertirla en diccioanrio se usa función dict().

diccionario = dict(((1,('Curso','Dibujo I','Lecciones',10)), (2,('Curso','Dibujo II','Lecciones',7))))
Inicio : Python para todos.

Características de los diccionarios

Los diccionarios son:

  • heterogéneos: sus elementos pueden ser de diferentes tipos, incluidos otros diccionarios.
  • mutables: los diccionarios se pueden actualizar, eliminar o agregar un elemento adicional.
Inicio : Python para todos.

Métodos de los diccionarios

Los métodos para los diccionarios son los siguientes:

    1. keys(). Muestra las listas de las claves de un diccionario, valor numérico o cadena de texto.
    1. get(#Clave). Obtiene el valor de un elemento de la clave dada.
    1. clear(). Limpia los elementos de un diccionario.
    1. copy(). Hace una copia superficial del diccionario.
    1. items(). Retorna una nueva vista de los elementos de un diccionario.
    1. values() . Devuelve la vista del objeto dinámica.
    1. pop() . Elimina un elemento de un diccionario mediante la búsqueda de la clave y una cadena, esta última opcional.
Inicio : Python para todos.

Métodos de los diccionarios

Los métodos para los diccionarios son los siguientes:

    1. popitem(). Elimina el último elemento del diccionario y retorna el elemento eliminado.
    1. update(). El método actualiza un elemento del diccionario o agregar información adicional a una clave del diccionario.
    1. del(). Elimina un elemento del diccionario.
Inicio : Python para todos.

Método keys()

Obtiene una lista de las llaves y su valor. Útil cuando el diccionario esta estructurado por cadenas de texto, un ejemplo de este caso es el siguiente:

>>> dic = {'Enero':'01', 'Febrero':'02', 'Marzo':'03'}
>>> dic.keys()
>>> dict_keys(['Enero', 'Febrero', 'Marzo'])

En el caso del diccionario md anterior, este presenta llaves del tipo numéricas, mediante el método keys() se obtienen estas llaves.

>>> md={ 1: {'Curso':'Dibujo I','Lecciones': 10,},2: {'Curso':'Dibujo II','Lecciones': 7}}
>>> md.keys()
>>> dict_keys([1, 2])
Inicio : Python para todos.

Método get()

El valor de un elemento se obtiene mediante la llave del diccionario usando el método get().

>>>  md={ 1: {'Curso':'Dibujo I','Lecciones': 10,},2: {'Curso':'Dibujo II','Lecciones': 7}}
>>>  md.get(2)
>>> {'Curso': 'Dibujo II', 'Lecciones': 7}

Si el diccionario no tiene llaves numéricas entonces se consultan con el método keys() y posteriormente se obtiene el elemento.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.get('Enero')
Inicio : Python para todos.

Método clear()

El método clear() limpia todos los elementos de un diccionario.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.clear()
>>> dic
>>> {}
Inicio : Python para todos.

Método copy()

El método copy() realiza una copia superficial del diccionario.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> copia_dic = dic.copy()

Al tratarse de una copia superficial puede existir algún problema debido a la estructura del diccionario, lo mismo sucede con las listas.

>>> import copy
>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> copia_dic = copy.copy(dic)

El módulo copy incluido en la instalación de Python3 puede hacer la copia no superficial.

Inicio : Python para todos.

Método items()

El método items() obtiene una lista de tuplas con clave y valor.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.items()
>>> dict_items([('Enero', '1er mes'), ('Febrero', '2do mes'), ('Marzo', '3er mes')])

A partir de Python 3.6 se mantiene el orden de los elementos de un diccionario como fueron agregados, puedes consultar el PEP 434 y específicamente PEP 506.

Inicio : Python para todos.

Método values()

El método values() se implementa para obtener una lista de los valores del diccionario, dista bastante del método items() que muestra la llave y el valor.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.values()
>>> dict_values(['1er mes', '2do mes', '3er mes'])
Inicio : Python para todos.

Uso de items() y values() en los diccionarios

Los métodos items() y values() se utilizan en combinación con el ciclo para (for), ambos trabajan en conjunto. Si requieres de las claves o valores del diccionario utiliza estos métodos en combinación con el ciclo para (for).

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> for a in dic.values(): print(a)
>>> for a, b in dic.items(): print(a,':',b)
Inicio : Python para todos.

Método pop()

El método pop() se implementa para eliminar un elemento dentro de un diccionario; borra el par, clave y valor. Existe una particularidad en este método debido a que el diccionario puede contener llaves numéricas o cadenas de texto, estas se deben especificar como tal.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.pop('Enero')
>>> '1er mes'
>>> # {'Febrero': '2do mes', 'Marzo': '3er mes'} 
>>> dic2 = {1 :'Enero', 2 :'Febrero', 3 :'Marzo'}
>>> dic2.pop(1)
>>> 'Enero'

El método pop también se puede usar para eliminar todos los elementos relacionados con una clave.

Inicio : Python para todos.

Método popitem()

Elimina el último elemento del diccionario y retorna la clave como su valor.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.popitem()
>>> ('Marzo', '3er mes')
>>> # {'Enero': '1er mes', 'Febrero': '2do mes'}
Inicio : Python para todos.

Método update()

La actualización del contenido de un diccionario mediante el método update() es realmente sencilla, utiliza la llave y el valor para actualizar el contenido.

En caso de no existir la clave que se desea actualizar, la actualización se agrega al final, esto se muestra en el bloque de código siguiente:

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> dic.update([('Abril','4to mes')])
>>> dic
{'Enero': '1er mes', 'Febrero': '2do mes', 'Marzo': '3er mes', 'Abril': '4to mes'}

Para actualizar un elemento en específico este debe existir. La información que se desea actualizar debe ir en un arreglo de tupla, envuelto en una lista, véase el bloque anterior.

Inicio : Python para todos.

Eliminar items de un diccionario

Mediante la palabra clave del puedes eliminar en específico una clave de un diccionario.

En el bloque de abajo se muestra como eliminar la clave Enero, por tanto, se elimina todo lo relacionado con la clave.

>>> dic = {'Enero':'1er mes', 'Febrero':'2do mes', 'Marzo':'3er mes'}
>>> del dic.['Enero']
>>> dic
{'Febrero':'2do mes', 'Marzo':'3er mes'}