Fundamentos de diccionarios en Python: Claves, valores y acceso
Cada clave se separa de su valor por dos puntos (:), los elementos se separan por comas, y todo se encierra entre llaves. Un diccionario vacío se escribe con solo dos llaves: {}.
Las claves son únicas dentro de un diccionario mientras que los valores pueden no serlo. Los valores pueden ser de cualquier tipo, pero las claves deben ser de tipo inmutable: cadenas, números o tuplas.
Acceso a valores en diccionario
Para acceder a elementos, usa corchetes con la clave. Ejemplo:
Demo en vivo#!/usr/bin/python
dic = {'Nombre': 'Zara', 'Edad': 7, 'Clase': 'Primero'}
print "dic['Nombre']: ", dic['Nombre']
print "dic['Edad']: ", dic['Edad']
Resultado:
dic['Nombre']: Zara dic['Edad']: 7
Si intentamos acceder con clave inexistente, obtenemos error:
Demo en vivo#!/usr/bin/python
dic = {'Nombre': 'Zara', 'Edad': 7, 'Clase': 'Primero'}
print "dic['Alicia']: ", dic['Alicia']
Resultado:
dic['Alicia']: Traceback (most recent call last): File "test.py", line 4, inprint "dic['Alicia']: ", dic['Alicia'] KeyError: 'Alicia'
Actualización de diccionario
Puedes actualizar agregando nueva entrada, modificando existente o eliminando. Ejemplo:
Demo en vivo#!/usr/bin/python
dic = {'Nombre': 'Zara', 'Edad': 7, 'Clase': 'Primero'}
dic['Edad'] = 8 # Actualizar entrada existente
dic['Escuela'] = "Escuela DPS" # Agregar nueva entrada
print "dic['Edad']: ", dic['Edad']
print "dic['Escuela']: ", dic['Escuela']
Resultado:
dic['Edad']: 8 dic['Escuela']: Escuela DPS
Eliminar elementos de diccionario
Puedes eliminar elementos individuales, limpiar todo el diccionario o eliminarlo completamente.
Para eliminar diccionario completo, usa del. Ejemplo:
Demo en vivo#!/usr/bin/python
dic = {'Nombre': 'Zara', 'Edad': 7, 'Clase': 'Primero'}
del dic['Nombre'] # Eliminar entrada con clave 'Nombre'
dic.clear() # Eliminar todas las entradas
del dic # Eliminar diccionario completo
print "dic['Edad']: ", dic['Edad']
print "dic['Escuela']: ", dic['Escuela']
Resultado (excepción porque dic ya no existe):
dic['Edad']: Traceback (most recent call last): File "test.py", line 8, inprint "dic['Edad']: ", dic['Edad'] TypeError: 'type' object is unsubscriptable
Nota - del() se discute en sección siguiente.
Propiedades de las claves de diccionario
Los valores no tienen restricciones. Pueden ser cualquier objeto Python. Pero no es igual para las claves.
Dos puntos importantes sobre claves:
(a) No más de una entrada por clave. No se permiten claves duplicadas. Si hay duplicados, la última asignación gana. Ejemplo:
Demo en vivo#!/usr/bin/python
dic = {'Nombre': 'Zara', 'Edad': 7, 'Nombre': 'Manni'}
print "dic['Nombre']: ", dic['Nombre']
Resultado:
dic['Nombre']: Manni
(b) Las claves deben ser inmutables. Puedes usar cadenas, números o tuplas como claves, pero no listas. Ejemplo:
Demo en vivo#!/usr/bin/python
dic = {['Nombre']: 'Zara', 'Edad': 7}
print "dic['Nombre']: ", dic['Nombre']
Resultado:
Traceback (most recent call last): File "test.py", line 3, indic = {['Nombre']: 'Zara', 'Edad': 7} TypeError: unhashable type: 'list'
Funciones y métodos integrados de diccionario
Python incluye las siguientes funciones de diccionario:
| Nº | Función con descripción |
|---|---|
| 1 | cmp(dict1, dict2) - Compara elementos de ambos diccionarios. |
| 2 | len(dict) - Longitud total (número de elementos). |
| 3 | str(dict) - Representación string imprimible. |
| 4 | type(variable) - Tipo de variable. Si es diccionario, devuelve tipo diccionario. |
Python incluye los siguientes métodos de diccionario:
| Nº | Métodos con descripción |
|---|---|
| 1 | dict.clear() - Elimina todos los elementos. |
| 2 | dict.copy() - Copia superficial del diccionario. |
| 3 | dict.fromkeys() - Crea nuevo diccionario con claves de seq y valores establecidos a value. |
| 4 | dict.get(clave, default=None) - Devuelve valor o default si clave no existe. |
| 5 | dict.has_key(clave) - True si clave en diccionario, False en caso contrario. |
| 6 | dict.items() - Lista de tuplas (clave, valor). |
| 7 | dict.keys() - Lista de claves. |
| 8 | dict.setdefault(clave, default=None) - Como get(), pero establece dict[clave]=default si clave no existe. |
| 9 | dict.update(dict2) - Agrega pares clave-valor de dict2. |
| 10 | dict.values() - Lista de valores. |
python
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Dominando la sentencia pass en Python: Guía práctica
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
- Visión general de Python: Lenguaje de alto nivel, legible, interactivo y orientado a objetos
- Números en Python: Entendiendo tipos de datos numéricos inmutables
- Dominando cadenas en Python: Creación, acceso y manipulación