Skip to content

Commit fe22fd7

Browse files
Add files via upload
Ejemplos y ejercicios del capítulo 3.
1 parent 21f560d commit fe22fd7

13 files changed

+530
-0
lines changed

Cap3/Ejemplo 3_1.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_1
5+
Construcción de diccionarios.
6+
"""
7+
8+
# La clave es una cadena.
9+
num_meses = {'enero': 1, 'febrero': 2, 'marzo': 3, 'abril': 4, 'mayo': 5, 'junio': 6}
10+
print('\n', num_meses)
11+
# La clave es un entero.
12+
nom_meses = {1: 'enero', 2: 'febrero', 3: 'marzo', 4: 'abril', 5: 'mayo', 6: 'junio'}
13+
print(nom_meses)
14+
# Genera un diccionario con las claves tomadas de la lista y el valor 5.
15+
puntaje = {}.fromkeys(['futbol', 'basquetbol', 'tenis', 'natación'], 5)
16+
print(puntaje)
17+
frutas = {'manzana': 34, 'pera': 45}
18+
print('\nEl tipo es:', type(frutas)) # Imprime <class 'dict'>
19+
20+
# Uso del constructor dict para construir diccionarios.
21+
# Por medio de una lista de tuplas.
22+
dic1 = dict([('La Paz', 13), ('Lima', 27), ('Caracas', 30), ('Montevideo', 23)])
23+
print('\nCon lista de tuplas:', dic1)
24+
# Por medio de una lista por comprensión.
25+
dpares = dict([(n, n ** 3) for n in range(1, 5)])
26+
print('Con lista por comprensión:', dpares)
27+
# Usando parámetros de palabras claves.
28+
dic2 = dict(juan = 56287041, irene = 98741245)
29+
print('Con parámetros de palabras claves:', dic2)
30+
# Por medio de un diccionario.
31+
dic3 = dict({'irene': 98741245, 'juan': 56287041})
32+
print('Con un diccionario:', dic3)

Cap3/Ejemplo 3_10.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_10
5+
Diccionarios y conjuntos.
6+
"""
7+
8+
# Se crean 4 diccionarios.
9+
menu1 = {'ensalada': 35, 'sopa': 28, 'pollo': 40, 'fruta': 15}
10+
menu2 = {'ensalada': 35, 'pollo': 40, 'gelatina': 20}
11+
menu3 = {'ensalada': 35, 'sopa': 28, 'ternera': 50, 'pastel': 30}
12+
menu4 = {'ensalada': 35, 'sopa': 28, 'cerdo': 45, 'pastel': 30}
13+
14+
# Vistas de claves (tratadas como conjuntos) de 3 diccionarios.
15+
claves1 = menu1.keys()
16+
claves2 = menu2.keys()
17+
claves3 = menu3.keys()
18+
claves4 = set(menu4) # Se crea un conjunto a partir de un diccionario.
19+
20+
# Todos los platillos que se sirven: unión de conjuntos.
21+
platillos = claves1 | claves2 | claves3 | claves4
22+
print('\nLos platillos que se sirven son:', platillos)
23+
# Platillo que se repite en todos los menús: intersección de conjuntos.
24+
lo_comun = claves1 & claves2 & claves3 & claves4
25+
print('\nEn todos los menús se sirve:', lo_comun)
26+
27+
# Vistas de ítems (tratadas como conjuntos) de 2 diccionarios.
28+
pla_pre1 = menu1.items()
29+
pla_pre2 = menu2.items()
30+
31+
# Platillo y precio que está en el menú1 pero no en el menú2:
32+
# diferencia de conjuntos.
33+
no_estan = pla_pre1 - pla_pre2
34+
print('\nLos platillos que se sirven en el menú1 y no en el menú2:', no_estan)
35+

Cap3/Ejemplo 3_11.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_11
5+
Diccionarios y la función enumerate.
6+
"""
7+
8+
# Se crea un diccionario con los meses del primer semestre del año y los
9+
# números que los identifican.
10+
primer_semestre = ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio']
11+
mapeo = {}
12+
for i, elemento in enumerate(primer_semestre, 1): # Se enumera a partir del 1.
13+
mapeo[elemento] = i
14+
print('\nMeses-número:\n', mapeo)
15+
16+
# Se crea un diccionario con las letras del abecedario y los valores decimales
17+
# que les corresponden según el código ASCII.
18+
abecedario = 'abcdefghijklmnopqrstuvwxyz' # Se omite la ñ.
19+
letras = {}
20+
for i, elemento in enumerate(abecedario, 97): # Se enumera a partir del 97.
21+
letras[elemento] = i
22+
print('\nLetras-código ASCII:\n', letras)

Cap3/Ejemplo 3_2.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_2
5+
Algunas operaciones con diccionarios.
6+
"""
7+
nom_meses = {1: 'enero', 2: 'febrero', 3: 'marzo', 4: 'abril', 5: 'mayo', 6: 'junio'}
8+
puntaje = {}.fromkeys(['futbol', 'basquetbol', 'tenis', 'natación'], 5)
9+
frutas = {'manzana': 34, 'pera': 45}
10+
11+
# Agrega un nuevo par clave: valor
12+
frutas['cereza'] = 90
13+
print('\nLuego de agregar cereza: 90 -->', frutas)
14+
# Modifica el valor correspondiente a la clave.
15+
frutas['manzana'] = 37 # Como la clave ya está, asigna este valor.
16+
print('Luego de modificar el valor de manzana -->', frutas)
17+
# Agrega los ítems de un diccionario a otro.
18+
nuevo = {}
19+
nuevo.update(puntaje)
20+
print('\nUsando update-1:', nuevo)
21+
nuevo.update(frutas)
22+
print('\nUsando update-2:', nuevo)
23+
frutas['guayaba'] = 32
24+
nuevo.update(frutas)
25+
print('\nUsando update-3:', nuevo)
26+
27+
# Acceso y modificación a un elemento por medio de su clave.
28+
print('\nEl valor de pera es:', frutas['pera'])
29+
frutas['cereza'] += 10 # Le suma 10 al valor actual.
30+
# frutas['mango'] += 5 # Da KeyError: 'mango'
31+
# Consulta el valor, dada una clave.
32+
print('El valor de cereza:', frutas.get('cereza')) # Regresa el valor.
33+
print('El valor de banana:', frutas.get('banana')) # Regresa None.
34+
35+
# Elimina el par correspondiente a la clave dada.
36+
del frutas['pera']
37+
print('\nLuego de quitar pera: 45 -->', frutas)
38+
# del d['higo'] # Da KeyError: 'higo'
39+
elem = nom_meses.pop(1) # Quita el elemento y regresa solo su valor.
40+
print(f'Luego de quitar {elem} -->', nom_meses)
41+
# Quita arbitrariamente un elemento y lo regresa.
42+
elem = nom_meses.popitem()
43+
print(f'Luego de quitar {elem} -->', nom_meses)
44+
nom_meses.clear() # Vacía el diccionario.
45+
print(f'Luego de quitar todos los elementos -->', nom_meses)
46+
47+
# Uso del operador de membresía: in. Es solo para claves.
48+
if 'cereza' in frutas:
49+
print('\nSí está cereza en el diccionario.') # Imprime.
50+
else:
51+
print('No está cereza en el diccionario.')
52+
if 'uva' not in frutas:
53+
print('No está uva en el diccionario.') # Imprime.
54+
else:
55+
print('Sí está uva en el diccionario.')
56+
if 100 in frutas: # Membresía de un valor.
57+
print('Sí está el 100 en el diccionario.')
58+
else:
59+
print('No está el 100 en el diccionario.') # Imprime.

Cap3/Ejemplo 3_3.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_3
5+
Diccionarios: aplicación de funciones predefinidas y operadores.
6+
"""
7+
# Se importa el módulo operator para poder ordenar por valor.
8+
import operator
9+
10+
num_meses = {'ene': 1, 'feb': 2, 'mar': 3, 'abr': 4, 'may': 5, 'jun': 6}
11+
nom_meses = {1: 'enero', 2: 'febrero', 3: 'marzo', 4: 'abril', 5: 'mayo', 6: 'junio'}
12+
d1 = {1: 'azul', 2: 'rojo', 3: 'verde'}
13+
d2 = {}
14+
d3 = {2: 'rojo', 1: 'azul', 3: 'verde'}
15+
d4 = {0: 'amarillo', 1: 'azul', 2: 'rojo', 3: 'verde'}
16+
17+
# Regresa el total de elementos del diccionario.
18+
print('\nTotal de elementos del diccionario:', len(num_meses))
19+
20+
# Evalúa si todas las claves son True.
21+
print('\nCP1: Resultado de "all" con d1 -->', all(d1))
22+
print('CP2: Resultado de "all" con d4 -->', all(d4))
23+
print('CP3: Resultado de "all" con diccionario vacío -->', all(d2))
24+
# Evalúa si alguna clave es True.
25+
print('\nCP1: Resultado de "any" con d1 -->', any(d1))
26+
print('CP2: Resultado de "any" con diccionario vacío -->', any(d2))
27+
28+
# Regresa una lista de claves ordenadas de mayor a menor.
29+
ordenado = sorted(num_meses, reverse = True)
30+
print('\nClaves ordenadas:', ordenado)
31+
menu = {'helado': 25, 'tarta': 43, 'galleta': 12, 'merengue': 18}
32+
# Genera un diccionario ordenado por valor.
33+
menu_ord = dict(sorted(menu.items(), key = operator.itemgetter(1)))
34+
print('Menú ordenado por precio:', menu_ord)
35+
36+
# Compara los elementos de dos diccionarios. No importa el orden.
37+
if num_meses == nom_meses:
38+
print('\nSí son iguales.')
39+
else:
40+
print('\nNo son iguales.') # Imprime.
41+
if d1 == d3:
42+
print('Sí son iguales.') # Imprime.
43+
else:
44+
print('No son iguales.')
45+
if d1 != d2:
46+
print('Sí son diferentes.') # Imprime.
47+
else:
48+
print('No son diferentes.')
49+
50+

Cap3/Ejemplo 3_4.py

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_4
5+
Recorrido de los elementos de un diccionario.
6+
Métodos: keys(), values(), items().
7+
Diccionarios y listas.
8+
"""
9+
10+
num_meses = {'ene': 1, 'feb': 2, 'mar': 3, 'abr': 4, 'may': 5, 'jun': 6}
11+
menu = {'helado': 25, 'tarta': 43, 'galleta': 12, 'merengue': 18}
12+
13+
# Recorrido de diccionarios usando el ciclo for.
14+
for mes in num_meses:
15+
print(mes, ' ', end = '')
16+
suma = 0
17+
for postre in menu:
18+
suma += menu[postre]
19+
print('\nSuma de los precios de los postres: $', suma)
20+
21+
# Métodos: keys(), values(), items().
22+
claves = menu.keys()
23+
print('\nTipo de keys():', type(claves))
24+
print('Claves 1-:', claves)
25+
menu['gelatina'] = 24 # Agrega un ítem al diccionario.
26+
print('Claves 2-:', claves) # Modificado por la inserción de arriba.
27+
28+
valores = menu.values()
29+
print('\nTipo de values():', type(valores))
30+
print('Valores 1-', valores)
31+
menu['galleta'] = 16 # Modifica el valor.
32+
print('Valores 2-', valores) # Modificado por la actualización de arriba.
33+
34+
items = num_meses.items()
35+
print('\nTipo de items():', type(items))
36+
print('Items 1-', items)
37+
del num_meses['mar'] # Borra el ítem.
38+
print('Items 2-', items) # Modificado por la eliminación de arriba.
39+
40+
# Regresa el total de elementos de la vista.
41+
print('\nTotal de claves:', len(claves))
42+
print('Total de ítems:', len(items))
43+
44+
# Ordena los elementos de la vista de acuerdo con la clave.
45+
menu_ordenado = sorted(menu.items()) # Genera lista de tuplas.
46+
print('\nMenú ordenado:', menu_ordenado)
47+
# Otra manera de ordenar, usando el constructor dict.
48+
meses_ordenados = dict(sorted(num_meses.items())) # Genera diccionario.
49+
print('Meses ordenados:', meses_ordenados)
50+
51+
# Uso del operador de membresía en las vistas.
52+
if 'galleta' in claves: # Valor posible de clave.
53+
print('\nSí hay galletas.')
54+
else:
55+
print('\nNo hay galletas.')
56+
if ('alfajor', 31) in items: # Valor posible de ítem.
57+
print('Sí hay alfajores a $31.')
58+
else:
59+
print('No hay alfajores a $31.')
60+
if ('gelatina', 31) in items: # Valor posible de ítem.
61+
print('Sí hay gelatinas a $31.')
62+
else:
63+
print('No hay gelatinas a $31.')
64+
65+
# Iteración usando clave y valor de cada ítem.
66+
print()
67+
for mes, num in items:
68+
print(f'El mes {mes} es el {num} del año.')
69+
suma_precios = 0
70+
for precio in valores:
71+
suma_precios += precio
72+
print('\nSuma de los precios de los postres = $', suma_precios)
73+
74+
# Constructor list() aplicado al diccionario.
75+
lista_menu = list(menu)
76+
print('\nLista generada con el diccionario:',lista_menu)
77+
78+
# Construcción de listas a partir de las vistas de diccionarios.
79+
lista_claves = list(claves) # Genera lista de cadenas.
80+
print('\nLista de claves:', lista_claves)
81+
lista_items = list(items) # Genera lista de tuplas.
82+
print('Lista de ítems:', lista_items)
83+
84+
# Se obtienen listas ordenadas de menor a mayor.
85+
claves_ord = sorted(lista_claves)
86+
print('\nLista de claves ordenadas:', claves_ord)
87+
valores_ord = sorted(valores)
88+
print('Lista de valores ordenados:', valores_ord)
89+
items_ord = sorted(lista_items)
90+
print('Lista de ítems ordenados:', items_ord)
91+
92+

Cap3/Ejemplo 3_5.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_5
5+
Copia de diccionarios.
6+
"""
7+
8+
import copy
9+
10+
num_meses = {'ene': 1, 'feb': 2, 'mar': 3, 'abr': 4, 'may': 5, 'jun': 6}
11+
12+
# Usando métodos del módulo copy.
13+
copia_meses1 = copy.copy(num_meses)
14+
copia_meses2 = copy.deepcopy(num_meses)
15+
16+
# Usando la función copy().
17+
copia_meses = num_meses.copy()
18+

Cap3/Ejemplo 3_6.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
@author: guardati
4+
Ejemplo 3_6
5+
Creación de diccionarios usando otros datos estructurados.
6+
"""
7+
8+
# Diccionarios con diccionarios.
9+
alumnos = {'juan': {'matematica': 9.5, 'biologia': 7.5, 'literatura': 8.7, 'fisica': 8.0},
10+
'ines': {'matematica': 9.0, 'biologia': 8.5, 'literatura': 6.5, 'fisica': 9.0},
11+
'luis': {'matematica': 9.5, 'biologia': 7.5, 'literatura': 8.7, 'fisica': 8.0}}
12+
solo_juan = alumnos['juan']
13+
print('\nMaterias de Juan:', solo_juan)
14+
calif = solo_juan.values()
15+
prom = sum(calif) / len(calif)
16+
print('Promedio:', prom)
17+
18+
# Diccionario con listas
19+
pract_dep = {'juan': ['futbol', 'basquetbol'], 'ines': ['tenis', 'voleibol'],
20+
'luis': ['natacion', 'futbol', 'boxeo']}
21+
deportes = list(pract_dep.values())
22+
print('\nDeportes practicados por los alumnos:', deportes)
23+
# Iterando sobre la vista de valores.
24+
fut = 0
25+
for dep in deportes:
26+
if 'futbol' in dep:
27+
fut += 1
28+
print('\n(1)Total de alumnos que practican fútbol =', fut)
29+
# Usando listas por comprensión.
30+
lis_dep = [dep for lis in deportes for dep in lis]
31+
print('(2)Total de alumnos que practican fútbol =', lis_dep.count('futbol'))
32+
33+
# Diccionario con tuplas.
34+
# Tuplas como claves.
35+
equipos = {('pat', 'lara'): 85, ('jorge', 'ines'): 80, ('luis', 'leti'): 103}
36+
print('\nIntegrantes de los equipos y puntajes:', equipos)
37+
puntajes = equipos.values()
38+
ganador = max(puntajes)
39+
print('El mayor número de puntos obtenidos es:', ganador)
40+
# Tuplas como valores.
41+
temporadas = {'cereza': ('verano'), 'naranja': ('otoño', 'invierno', 'primavera', 'verano'),
42+
'mango': ('primavera', 'verano')}
43+
print('\nLas frutas y sus temporadas'.upper())
44+
for fruta in temporadas:
45+
print(f'La/el {fruta} se cosecha en: {temporadas[fruta]}')
46+
# Tuplas como claves y valores.
47+
dieta = {('desay', 'merienda'): ('lacteo', 'fruta'),
48+
('comida', 'cena'): ('proteina', 'vegetal', 'granos', 'fruta')}
49+
resp = True
50+
for alim in dieta:
51+
if 'fruta' not in dieta[alim]:
52+
resp = False
53+
break
54+
if resp:
55+
print('\nSe debe comer fruta con todos los alimentos.')
56+
else:
57+
print('\nNo se debe comer fruta con todos los alimentos.')
58+
59+
# Mezclando tipos de datos.
60+
dic_mez = {'lluvia': ['lun', 'juev', 'vie'], 25: 'mar'}
61+
print('\nDiversos tipos:', dic_mez)
62+
63+
64+

0 commit comments

Comments
 (0)