Diccionarios (II)
Colecciones de datos
Damos continuidad en esta entrada a la temática iniciada en la anterior sobre los diccionarios Python y sus usos. Ahora trataremos cuestiones básicas de manejo de los diccionarios y su contenido.
#A. Procedimientos directos de creación de diccionarios simples ========================
# 1. Creación estándar con llaves
usuario_ana = {
"nombre": "Ana",
"edad": 28,
"lenguajes": ["Python", "JavaScript"],
"activo": True
}
# 2. Creación con la función dict()
usuario_carlos= dict(nombre="Carlos", edad=35,lenguajes=["OOo Basic","Python"],activo=True)
#B. Acceso a datos =================================================
# 1. Acceso directo con llaves
print(usuario_ana["nombre"]) # Salida: Ana
print(usuario_carlos["edad"]) #Salida: 35
# 2. Acceso seguro con .get() (evita que el programa falle si la clave no existe)
print(usuario_ana.get("edad")) # Salida: True
print(usuario_carlos.get("salario", "No especificado")) # Salida: No especificada
#3. Acceso cuando el valor es una lista
# Cuando el valor es una lista, sólo con la clave obtenemos como valor la propia lista
print(usuario_ana.get("lenguajes")) # Salida: ["Python", "JavaScript"]
# 3.1. Usando corchetes. Obtener el primer elemento de la lista (índice 0)
primer_lenguaje = usuario_ana["lenguajes"][0]
print(primer_lenguaje) # Salida: Python
# 3.2. Usando get(). Obtener el primer elemento con .get()
primer_lenguaje = usuario_carlos.get("lenguajes")[0]
print(primer_lenguaje) # Salida: OOo Basic
# C. Modificar datos: cambiar, borrar y añadir datos ===============================
# 1. Modificar un valor existente
usuario_ana["edad"] = 29
# 2. Agregar una nueva pareja clave-valor
usuario_ana["ciudad"] = "Madrid"
# 3. Agregar elemento a un valor-lista (ej. lenguajes:[lista_lenguajes]
# 3.1. Agregar un nuevo elemento a la lista 'lenguajes' con append()
usuario_ana["lenguajes"].append("C++")
# (3.1.b) Si no estás seguro de que exista la clave 'lenguajes' usa setdefault() para crearlo y luego añade el elemento con append()
usuario_ana.setdefault("lenguajes", []).append("LUA")
# 3.2. Agregar un nuevo elemento a la lista 'lenguajes' usando .extend() (varios elementos)
usuario_carlos["lenguajes"].extend(["JavaScript", "C++", "PHP"])
# (3.2.b) ...o usando +=
usuario_ana["lenguajes"] += ["OOo Basic"]
print(usuario_carlos["lenguajes"])
print(usuario_ana["lenguajes"])
# 4. Borrar
# 4.1 Eliminar una clave específica con 'del'
del usuario_ana["activo"] #Elimina el par activo:True
# Extraer y eliminar un valor con .pop()
edad = usuario_ana.pop("edad") # Elimina el valor (29) del par "edad":29
# Limpiar todo el diccionario
usuario_carlos.clear() # Elimina todo el diccionario (usuario_carlos)
print(usuario_ana.get("activo", "No especificado")) #con get() evitamos mensaje de error. Devuelve mensaje ("No especificado")
print(edad) #Devuelve el valor del par 'edad':29
print(usuario_ana.get('edad')) #Devuelve None por defecto (ya que no se espifica mensaje)
print (usuario_carlos) # Devuelve un diccionario vacío ({})
Reproduzco en este script la creación de dos diccionarios simples para desarrollar la lógica de posibles manipulaciones sobre un diccionario y sus contenidos. La división del script en cuatro partes y la explicitación como comentarios de cada una de las posibles acciones facilita la comprensión del contenido y agiliza esta explicación complementaria.
Podemos diferenciar tres tipos de actuaciones sobre un diccionario:
- Los procedimientos de acceso a los datos (sección B)
- mediante el uso de llaves
print(usuario_ana["nombre"])- Salida: Ana - mediante la función
get()para controlar el posible error de acceso - y el acceso en el caso específico de valores-lista, bien para visualizar la lista completa de valores
print(usuario_ana.get("lenguajes")), bien para acceder a uno de ellos en concreto, por ejemplo,print(primer_lenguaje = usuario_ana["lenguajes"][0]), mediante el uso de corchetes - La modificación de datos (cambiar o añadir) (sección C del script)
- mediante procedimientos simples
usuario_ana["edad"] = 29de cambio - o
usuario_ana["ciudad"] = "Madrid"para añadir clave:valor, ambos basados en el uso de corchetes - o más complejos como es el caso de la modificación de valores-listas, que requieren el uso de funciones como
append(), (sóla en combinación consetdefault()) para añadir un elemento-valor o la funciónextend()para añadir varios. - Finalmente, en la sección D tratamos el borrado de datos: clave: valor
del usuario_ana["activo"], sólo valoredad = usuario_ana.pop("edad")y del diccionario completousuario_carlos.clear()
Finalizo aquí esta segunda entrada sobre los diccionarios, pero aun hay materia para más...