Objetivo: entender el concepto de diccionario en Python y aprender cómo se crean.
Tengo el placer de presentarte los diccionarios de Python, estructuras de datos fascinantes y tremendamente adictivas. Con frecuencia, cuando necesito resolver mediante programación alguna necesidad, me encuentro con que los diccionarios me vienen a la cabeza de un modo natural. Son objetos muy poderosos, como irás comprobando.
Ya sabes, en otro sentido, lo que es un diccionario, llevas toda tu vida manejándolos. Abre uno cualquiera por una página al azar y dime qué ves.
Un conjunto de términos y sus definiciones, no es más que eso. Un conjunto de claves (las palabras) y sus correspondientes valores (las definiciones).
Un diccionario en Python es, en esencia, lo mismo: una colección de pares formados por claves y definiciones.
Las claves no tienen que ser, necesariamente, palabras: puede servir cualquier tipo que sea inmutable, como los números o los strings. O incluso estructuras más complejas como las tuplas (que ya sabes que son inmutables, en oposición a las listas), pero con la condición de que los elementos que las componen sean también inmutables (por ejemplo, que dentro de una tupla no exista una lista). Más adelante comprenderemos el porqué de estas «manías» que tienen las claves de los diccionarios. Los valores, en cambio, no tienen estas restricciones y pueden ser de cualquier tipo.
Hay un concepto que diferencia a los diccionarios Python de los de papel de toda la vida. En estos, las palabras (claves) están ordenadas alfabéticamente, de la a a la z. Sin embargo, aunque muchas veces nos dará la sensación de lo contrario, no hay ordenación implícita en los elementos de un diccionario en Python. Veremos que existen métodos que nos permitirán, si lo necesitamos, poner orden en ese caos, pero hazte a la idea de que los diccionarios no son estructuras ordenadas. Si te gustaba la analogía con el diccionario de papel, imagínala como si hubieras recortado todos los pares término-definición y los hubieras metido en un saco, perdiendo así su orden natural.
Pongámonos manos a la obra ya. Vamos a crear un diccionario sencillo que nos sirva para asociar a cada uno de nuestros amigos con su fecha de cumpleaños. Por ejemplo:
'Marta': '25 de abril'
'José Luis' : '5 de diciembre'
En este ejemplo, todas las claves y los valores son de tipo string, por eso los he incluido entre comillas (da igual que sean simples o dobles), pero no tendría por qué haber sido así. Nada nos impediría, tampoco, introducir un par clave-valor así:
456 : '14 de mayo'
Es decir, ni las claves ni los valores tienen por qué mantener homogeneidad en sus tipos. Naturalmente, no tendría sentido en nuestro problema particular, pero sería un par válido.
Fíjate cómo hemos separado las claves de los valores empleando dos puntos.
Para crear el diccionario, separamos cada par mediante comas y rodeamos todo el conjunto entre llaves:
>>> cumpleaños = {'Marta': '25 de abril', 'José Luis' : '5 de diciembre'}
Comprobemos el tipo de este objeto:
>>> type(cumpleaños)
<class 'dict'>
Y su valor:
>>> cumpleaños
{'Marta': '25 de abril', 'José Luis': '5 de diciembre'}
Una regla de oro que cumplen los diccionarios es que las claves han de ser únicas. Si tratas de agregar un elemento con la misma clave que otro ya existente, simplemente el valor nuevo sobreescribirá al antiguo.
Para crear un diccionario vacío procedemos del siguiente modo:
>>> dicci = {} # Un simple par de llaves sin nada dentro
>>> type(dicci)
<class 'dict'>
Ya sabemos crear diccionarios, vacíos o con pares clave-valor dentro. Próximamente aprenderemos a agregar o eliminar datos de estas estructuras ya creadas.
Javier Montero Gabarró
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
El Club del Autodidacta
Consulta el índice completo de artículos relacionados con Python.