0% encontró este documento útil (0 votos)
9 vistas10 páginas

Comprensión de Diccionarios en Python

El documento proporciona una guía completa sobre diccionarios en Python, explicando su estructura, características y operaciones comunes como creación, acceso, modificación y eliminación de elementos. Se incluyen ejemplos prácticos de cómo crear diccionarios a partir de diferentes fuentes, como listas, archivos de texto y Excel, así como el uso de métodos específicos para manipular diccionarios. Además, se aborda el concepto de diccionarios anidados y se presentan ejemplos de cómo trabajar con ellos.

Cargado por

samysamueljulio
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas10 páginas

Comprensión de Diccionarios en Python

El documento proporciona una guía completa sobre diccionarios en Python, explicando su estructura, características y operaciones comunes como creación, acceso, modificación y eliminación de elementos. Se incluyen ejemplos prácticos de cómo crear diccionarios a partir de diferentes fuentes, como listas, archivos de texto y Excel, así como el uso de métodos específicos para manipular diccionarios. Además, se aborda el concepto de diccionarios anidados y se presentan ejemplos de cómo trabajar con ellos.

Cargado por

samysamueljulio
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Taller N.

1
AyP
Maryém Aliria Ruiz Núñez

DICCIONARIOS

GENERALIDADES
Los diccionarios (mapas o estructuras de datos clave- valor) son una colección de pares
formados por una clave y un valor asociado a la clave. Los valores se mapean a las
claves.
Los diccionarios pueden tener valores de cualquier tipo: string o cadenas de caracteres,
números, listas, otros diccionarios, objetos, entre otros. Las claves, deben ser de un tipo
inmutable como cadenas, números o tuplas.

Características:

 Los elementos en el diccionario se encierran entre corchetes {}.


 Cada elemento en un diccionario debe contener un par de clave-valor, la clave es única
y con ella se accede al valor respectivo.
 Cada par de clave-valor se llama elemento (item).
 Se puede acceder a los valores almacenados usando las claves.
 Los diccionarios son mutables es decir se pueden modificar, borrar, actualizar.
 Los diccionarios pueden ser anidados, es decir un valor puede ser otro diccionario
 Pueden almacenar diferentes tipos de datos como enteros, String, listas, otro
diccionario

En Python:

 Los diccionarios son una forma de almacenar elementos son similares a una lista de
Python. Pero, en lugar de acceder a los elementos por el índice, se hace por una clave
fija, es decir se accede al elemento utilizando la clave. Se manejan como el par "key-
value".
 En Python los diccionarios se llaman dict
 Son dinámicos, pueden crecer o decrecer, se pueden añadir o eliminar items.
 Son indexados, los elementos del diccionario son accesibles a través de la clave es
decir el componente key.
 Pueden ser anidados, un diccionario puede contener a otro diccionario en el campo
value.
 En Python existe la comprensión de diccionarios que es la facilidad de crear un
diccionario en una sola línea a partir de un objeto iterable, como listas, aplicando una
expresión a cada elemento para generar las claves y valores del nuevo diccionario, por
ejemplo:
{key: value for item in iterable if condition}

El formato general de un diccionario es:


mi_diccionario =
{"key1":<value1>,"key2":<value2>,"key3":<value3>,"key4":<value4>}

Página 1 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

Un ejemplo
un_diccionario = {
"nombre": "Juan",
"edad": 30,
"direcciones": ["Calle A, 123", "Calle B, 456"],
"datos_adicionales": {"ciudad": "Medellín", "pais": "Colombia"}
}

las claves son: nombre", "edad", "direcciones" y "datos_adicionales", los valores son de
diferente tipo: un string, un número, una lista y otro diccionario, respectivamente.

Otro ejemplo:

usuarios = {
"123456789": "contraseña_segura1",
"987654321": "clave_super_secreta",
"567890123": "password123"
}

La clave es el número de identificación y el valor es la contraseña

# Acceder a una contraseña dada la cédula


cedula = input("Ingrese la cédula: ")
if cedula in usuarios:
print(f"La contraseña asociada es: {usuarios[cedula]}")
else:
print("Cédula no encontrada.")

#=================================================

OPERACIONES CON DICCIONARIOS


Las operaciones más comunes con diccionarios son: Crear, buscar, acceder a los valores,
actualizar, borrar, mostrar, consultar cuantos ítem tiene, entre otras.

Crear diccionario

Los diccionarios se pueden crear de diferentes maneras:

1. Inicializándolo dentro del programa

d1 = {
"Nombre": "Sara",
"Edad": 27,
"Documento": 1003882
}
print(d1)

Página 2 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

La salida será:
#{'Nombre': 'Sara', 'Edad': 27, 'Documento': 1003882}

2. Crear un diccionario usando dict() y los pares key, value desde una lista y
entre paréntesis:
d2 = dict([
('Nombre', 'Sara'),
('Edad', 20),
('Documento', 1003882),
])
print(d2)

La salida será:
#{'Nombre': 'Sara', 'Edad': '27', 'Documento': '1003882'}

Otro ejemplo usando el constructor dict() .


d3 = dict(Nombre='Sara',
Edad=20,
Documento=1003882)
print(d3)
La salida será:

#{'Nombre': 'Sara', 'Edad': 27, 'Documento': 1003882}

3. Crear un diccionario a partir de dos listas

# Listas de nombres y notas


nombres = ["Camilo", "Ana", "Luis", "Sofia"]
notas = [4.5, 3.0, 3.8, 2.9]

# Crear el diccionario usando zip. Zip es para mapear listas, es decir formar
parejas con los elementos de cada lista, el primero con el primero, el segundo con
el segundo….

diccionario_notas = dict(zip(nombres, notas)


print(diccionario_notas)

4. Crear un diccionario desde un archivo tipo texto


def cargar_diccionario(archivo):
diccionario = {}
try:
with open(archivo, "r") as f:
for linea in f:
# Dividir la línea en clave y valores
clave, nombre, edad =
[Link]().split(",")

Página 3 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

diccionario[clave] = {"nombre":
[Link](), "edad": int([Link]())}
return diccionario
except FileNotFoundError:
print("El archivo no existe.")
return {}

En éste ejemplo el Archivo de entrada debe tener formato: clave, nombre, edad
separados por comas. El archivo se llama archivo = "[Link]"

El programa principal sería:


# Programa Principal Crear diccionario a partir del archivo
diccionario_personas = cargar_diccionario(“[Link]”)

# Mostrar el diccionario
print(diccionario_personas)

5. Crear un diccionario desde un archivo en Excel.

Ejemplo de programa en Python para crea un diccionario desde un archivo en


Excel, donde la primera columna es la clave y las 4 siguientes son el valor, el
archivo en Excel se llama [Link]
Para ello se debe importar una librería que permita trabajar con archivos en
Excel,por ejemplo pandas, en este caso se necesita también la librería :
import pandas as pd

# Cargar el archivo Excel


archivo_excel = "[Link]"
df = pd.read_excel(archivo_excel)

# Convertir el DataFrame en un diccionario. Se explicará más adelante


diccionario = df.set_index([Link][0]).iloc[:, :4].to_dict(orient="index")

# Mostrar el diccionario resultante


print(diccionario)

El archivo en Excel es:


CLAVE NOMBRE EDAD N1 N2
10 Sara 20 4 5
20 Cristian 19 3 3
50 Kevin 24 2,5 5
30 Juan 23 1,3 4
80 Pedro 21 4,2 3
90 Francisco 34 3,1 2

Página 4 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

La salida del programa es:

{10: {'NOMBRE': 'Sara', 'EDAD': 20, 'N1': 4.0, 'N2': 5}, 20: {'NOMBRE': 'Cristian', 'EDAD':
19, 'N1': 3.0, 'N2': 3}, 50: {'NOMBRE': 'Kevin', 'EDAD': 24, 'N1': 2.5, 'N2': 5}, 30:
{'NOMBRE': 'Juan', 'EDAD': 23, 'N1': 1.3, 'N2': 4}, 80: {'NOMBRE': 'Pedro', 'EDAD': 21,
'N1': 4.2, 'N2': 3}, 90: {'NOMBRE': 'Francisco', 'EDAD': 34, 'N1': 3.1, 'N2': 2}}

6. CREAR UN DICCIONARIO DESDE OTRO DICCIONARIO

clientela_10 = {cliente:descuento for (cliente, descuento) in


diccionario_descuentos.items() if descuento<30}

print(clientela_10)

Acceder y modificar elementos


Se puede acceder a sus elementos con [] o también con la función get()

print(d1['Nombre']) #Sara
print([Link]('Nombre')) #Sara

Para modificar un elemento basta con usar [] con el nombre del key y
asignar el valor que queremos.
d1['Nombre'] = "Laura"
print(d1)
#{'Nombre': Laura', 'Edad': 27, 'Documento': 1003882}

Si el key al que accedemos no existe, se añade automáticamente.


d1['Direccion'] = "Calle 123"
print(d1)
#{'Nombre': 'Laura', 'Edad': 27, 'Documento': 1003882, 'Direccion': 'Calle 123'}

Iterar diccionario
Los diccionarios se pueden iterar de manera muy similar a las listas u otras
estructuras de datos. Para imprimir los key .
# Imprime los key del diccionario
for x in d1:
print(x)

Página 5 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

#Nombre
#Edad
#Documento
#Direccion

Se puede imprimir también solo el value .

# Impre los value del diccionario


for x in d1:
print(d1[x])
#Laura
#27
#1003882
#Calle 123

O si queremos imprimir el key y el value a la vez.


# Imprime los key y value del diccionario
for x, y in [Link]():
print(x, y)
#Nombre Laura
#Edad 27
#Documento 1003882
#Direccion Calle 123

Diccionarios anidados
Los diccionarios en Python pueden contener uno dentro de otro. Podemos
ver como los valores anidado uno y dos del diccionario d contienen a su
vez otro diccionario.
anidado1 = {"a": 1, "b": 2}
anidado2 = {"a": 1, "b": 2}
d = {
"anidado1" : anidado1,
"anidado2" : anidado2
}
print(d)
#{'anidado1': {'a': 1, 'b': 2}, 'anidado2': {'a': 1, 'b': 2}}

Otro Ejemplo:
import json

def agregar_producto(diccionario):
"""Función para añadir un nuevo producto con todos sus datos."""
categoria = input("Ingrese la categoría del producto (Ejemplo: Electronicos, Ropa): ").strip()

Página 6 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

if categoria not in diccionario:


diccionario[categoria] = {} # Crea la categoría si no existe

producto_nombre = input("Ingrese el nombre del nuevo producto: ").strip()


print("Ingrese los detalles del producto en formato JSON (Ejemplo: {'marca': 'Apple', 'precio':
1200}):")

try:
detalles_producto = [Link](input()) # Entrada del usuario en formato JSON
if isinstance(detalles_producto, dict):
diccionario[categoria][producto_nombre] = detalles_producto
print("\nDiccionario actualizado:")
print(diccionario)
else:
print("❌ Error: Debe ingresar un diccionario válido en formato JSON.")
except [Link]:
print("❌ Error: Formato inválido. Ingrese los detalles correctamente.")

# Usamos el diccionario de productos que proporcionaste


productos = {
"Electronicos": {
"telefono": {"marca": "Samsung", "precio": 800},
"laptop": {"marca": "Dell", "precio": 1200}
},
"Ropa": {
"camisa": {"talla": "M", "color": "Azul"},
"jeans": {"talla": "32", "color": "Negro"}
}
}

# Agregar un nuevo producto ingresado por el usuario


agregar_producto(productos)

La salida es:
Ingrese la categoría del producto (Ejemplo: Electronicos, Ropa): electrodomesticos
Ingrese el nombre del nuevo producto: nevera
Ingrese los detalles del producto en formato JSON (Ejemplo: {'marca': 'Apple', 'precio': 1200}):
{"marca": "Haceb","precio": "3500000"}

Diccionario actualizado:
{'Electronicos': {'telefono': {'marca': 'Samsung', 'precio': 800}, 'laptop': {'marca': 'Dell', 'precio':
1200}}, 'Ropa': {'camisa': {'talla': 'M', 'color': 'Azul'}, 'jeans': {'talla': '32', 'color': 'Negro'}},
'electrodomesticos': {'nevera': {'marca': 'Haceb', 'precio': '3500000'}}}

Página 7 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

FORMATO JSON
Formato de intercambio de mensajes basado en clave: valor. Ejemplo:
{
"nombre": "Juan Pérez",
"edad": 30,
"ciudad": "Guayabal",
"es_colombiano": true,
"hobbies": ["leer", "correr", "programar"],
"direccion": {
"calle": "El Prado",
"numero": 123,
"barrio": "Guayabal"

}
}

Métodos diccionarios en Python


clear()

El método clear() elimina todo el contenido del diccionario.


d = {'a': 1, 'b': 2}
[Link]()
print(d) #{}

get(<key>[,<default>])

El método get() nos permite consultar el value para un key determinado.


El segundo parámetro es opcional, y en el caso de proporcionarlo es el
valor a devolver si no se encuentra la key .
d = {'a': 1, 'b': 2}
print([Link]('a')) #1
print([Link]('z', 'No encontrado')) #No encontrado

items()

El método items() devuelve una lista con los keys y values del diccionario.
Si se convierte en list se puede indexar como si de una lista normal se
tratase, siendo los primeros elementos las key y los segundos los value .
Página 8 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

d = {'a': 1, 'b': 2}
it = [Link]()
print(it) #dict_items([('a', 1), ('b', 2)])
print(list(it)) #[('a', 1), ('b', 2)]
print(list(it)[0][0]) #a

keys()

El método keys() devuelve una lista con todas las keys del diccionario.
d = {'a': 1, 'b': 2}
k = [Link]()
print(k) #dict_keys(['a', 'b'])
print(list(k)) #['a', 'b']

values()

El método values() devuelve una lista con todos los values o valores del
diccionario.
d = {'a': 1, 'b': 2}
print(list([Link]())) #[1, 2]

pop(<key>[,<default>])

El método pop() busca y elimina la key que se pasa como parámetro y


devuelve su valor asociado. Daría un error si se intenta eliminar
una key que no existe.
d = {'a': 1, 'b': 2}
[Link]('a')
print(d) #{'b': 2}

También se puede pasar un segundo parámetro que es el valor a devolver


si la key no se ha encontrado. En este caso si no se encuentra no habría
error.
d = {'a': 1, 'b': 2}
[Link]('c', -1)
print(d) #{'a': 1, 'b': 2}

Página 9 de 10
Taller N. 1
AyP
Maryém Aliria Ruiz Núñez

popitem()

El método popitem() elimina de manera aleatoria un elemento del


diccionario.
d = {'a': 1, 'b': 2}
[Link]()
print(d)
#{'a': 1}

update(<obj>)

El método update() se llama sobre un diccionario y tiene como entrada otro


diccionario. Los value son actualizados y si alguna key del nuevo
diccionario no esta, es añadida.
d1 = {'a': 1, 'b': 2}
d2 = {'a': 0, 'd': 400}
[Link](d2)
print(d1)
#{'a': 0, 'b': 2, 'd': 400}

Página 10 de 10

También podría gustarte