Autor: Nicolás Fernández Cinquepalmi
Breve descripción: Se pide entrar en contacto con 10 estudiantes del curso de datos y 2 profesores de LA-CoNGA y pedir una cierta información. Con esta información, se debe crear un diccionario llamado "compas" en donde se elija un nombre de usuario de mattermost y devuelva otro diccionario con la inforanción pedida. Por último, se debe crear una función que reciba como entrada el diccionario y un país de origen, y retorne las informaciones completas de todas las personas de ese país. Además, calcular el promedio de edad de todas las personas en dicho diccionario, y mostrar todas las instituciones sin repetición.
Paso 1. Se crea la base de datos de todos los estudiantes y/o profesores como diccionarios.
acerot = {
'Nombre' : 'Tatiana',
'Apellido' : 'Acero Cuellar',
'Pais' : 'Colombia',
'Residencia' : 'Bogota',
'Edad' : 23,
'Institucion' : 'Universidad Nacional de Colombia',
'Hobbie' : 'Fotografía'
}
carilloj = {
'Nombre' : 'Juan Guillermo',
'Apellido' : 'Carillo Reyes',
'Pais' : 'Colombia',
'Residencia' : 'Bogota',
'Edad' : 25,
'Institucion' : 'Universidad Nacional de Colombia',
'Hobbie' : 'Basket'
}
mamaniy = {
'Nombre' : 'Yhony',
'Apellido' : 'Mamani Arce',
'Pais' : 'Peru',
'Residencia' : 'Lima',
'Edad' : 26,
'Institucion' : 'Universidad Nacional Mayor de San Marcos',
'Hobbie' : 'Cocinar'
}
martinezj = {
'Nombre' : 'Jocabed',
'Apellido' : 'Martinez',
'Pais' : 'Venezuela',
'Residencia' : 'Caracas',
'Edad' : 22,
'Institucion' : 'Universidad Central de Venezuela',
'Hobbie' : 'Musica'
}
pinzonc = {
'Nombre' : 'Carlos Andres',
'Apellido' : 'Pinzon Osorio',
'Pais' : 'Colombia',
'Residencia' : 'Bogota',
'Edad' : 30,
'Institucion' : 'Universidad Antonio Nariño',
'Hobbie' : 'Atletismo'
}
ramosm = {
'Nombre' : 'Maria Jose',
'Apellido' : 'Ramos Sotillo',
'Pais' : 'Venezuela',
'Residencia' : 'Merida',
'Edad' : 23,
'Institucion' : 'Universidad de los Andres',
'Hobbie' : 'Escribir'
}
vargass = {
'Nombre' : 'Sasiru Juliana',
'Apellido' : 'Vargas Urbano',
'Pais' : 'Colombia',
'Residencia' : 'Cali',
'Edad' : 20,
'Institucion' : 'Universidad del Valle',
'Hobbie' : 'Bailar'
}
teofilo = {
'Nombre' : 'Teofilo',
'Apellido' : 'Vargas Aucalla',
'Pais' : 'Peru',
'Residencia' : 'Lima',
'Edad' : 54,
'Institucion' : 'Universidad Nacional Mayor de San Marcos',
'Hobbie' : 'Wing Chun Kuen'
}
leonl = {
'Nombre' : 'Luis Alberto',
'Apellido' : 'Leon Andonayre',
'Pais' : 'Peru',
'Residencia' : 'Callao',
'Edad' : 22,
'Institucion' : 'Universidad Nacional Mayor de San Marcos',
'Hobbie' : 'Guitarra'
}
siria = {
'Nombre' : 'Siria',
'Apellido' : 'Sadeddin',
'Pais' : 'Venezuela',
'Residencia' : 'Bogota',
'Edad' : 30,
'Institucion' : 'Universidad Simon Bolivar',
'Hobbie' : 'Data Science'
}
arturos = {
'Nombre' : 'Arturo',
'Apellido' : 'Sanchez',
'Pais' : 'Venezuela',
'Residencia' : 'Ginebra',
'Edad' : 34,
'Institucion' : 'LAPP',
'Hobbie' : 'Montar Bicicleta'
}
lnuñez = {
'Nombre' : 'Luis',
'Apellido' : 'Nuñez',
'Pais' : 'Venezuela',
'Residencia' : 'Bucaramanga',
'Edad' : 64,
'Institucion' : 'Universidad Industrial de Santander',
'Hobbie' : 'Cocina'
}
Paso 2. Creamos un diccionario general, que contenga los diccionarios individuales de cada usuario.
compas = {
'acerot' : acerot,
'carilloj' : carilloj,
'mamaniy' : mamaniy,
'martinezj' : martinezj,
'pinzonc' : pinzonc,
'ramosm' : ramosm,
'vargass' : vargass,
'teofilo' : teofilo,
'leonl' : leonl,
'siria' : siria,
'arturos' : arturos,
'lnuñez' : lnuñez
}
Paso 3. Se muestra los valores almacenados para un determinado usuario.
print('Los datos almacenados son: \n')
compas['lnuñez']
Los datos almacenados son:
{'Nombre': 'Luis', 'Apellido': 'Nuñez', 'Pais': 'Venezuela', 'Residencia': 'Bucaramanga', 'Edad': 64, 'Institucion': 'Universidad Industrial de Santander', 'Hobbie': 'Cocina'}
Paso 4. Debemos crear una función que filtre los usuarios por un país determinado y luego mostrar los datos de cada usuario que cumpla la condición. Para eso, definimos una función "filtro" con dos argumentos: compas y pais. Hacemos un ciclo "for" con una condición "if" sobre todos los usuarios dejando que se agrupen solo aquellos que sean del pais seleccionado. Previamente creamos tres listas vacías: "datos" que agrupará los datos de cada usuario, "da" que agrupará las keys, y "dat" que unirá cada dato con su respectivo key mediante la función "zip". Por último, se hace otro ciclo "for" que imprima cada grupo generado por el "zip".
from IPython.display import Markdown, display
def printmd(string):
display(Markdown(string))
def filtro (compas,pais):
for i in compas:
condicion = pais in compas[i].values()
datos = []
da = []
dat=[]
if condicion==True:
datos = list(compas[i].values())
da = list(compas[i])
dat = list(zip(da,datos))
print('\n')
print('Los datos del usuario @',i,'son: ')
print('\n')
for i in dat:
print(i)
filtro(compas,'Venezuela')
Los datos del usuario @ martinezj son: ('Nombre', 'Jocabed') ('Apellido', 'Martinez') ('Pais', 'Venezuela') ('Residencia', 'Caracas') ('Edad', 22) ('Institucion', 'Universidad Central de Venezuela') ('Hobbie', 'Musica') Los datos del usuario @ ramosm son: ('Nombre', 'Maria Jose') ('Apellido', 'Ramos Sotillo') ('Pais', 'Venezuela') ('Residencia', 'Merida') ('Edad', 23) ('Institucion', 'Universidad de los Andres') ('Hobbie', 'Escribir') Los datos del usuario @ siria son: ('Nombre', 'Siria') ('Apellido', 'Sadeddin') ('Pais', 'Venezuela') ('Residencia', 'Bogota') ('Edad', 30) ('Institucion', 'Universidad Simon Bolivar') ('Hobbie', 'Data Science') Los datos del usuario @ arturos son: ('Nombre', 'Arturo') ('Apellido', 'Sanchez') ('Pais', 'Venezuela') ('Residencia', 'Ginebra') ('Edad', 34) ('Institucion', 'LAPP') ('Hobbie', 'Montar Bicicleta') Los datos del usuario @ lnuñez son: ('Nombre', 'Luis') ('Apellido', 'Nuñez') ('Pais', 'Venezuela') ('Residencia', 'Bucaramanga') ('Edad', 64) ('Institucion', 'Universidad Industrial de Santander') ('Hobbie', 'Cocina')
Paso 5. Se pide calcular el promedio de edad de todos los usuarios registrados. Para eso, definimos una función "promedio_edades". Creamos una lista vacía y a continuación la llenamos con un ciclo "for" que agregue solo el key número 4 que, en este caso, corresponde a 'Edad'. Por último, se imprime el promedio sumando todos los valores almacenados en "Edades" y dividiendo por la cantidad de elementos presente en la fila.
def promedio_edades (compas):
Edades = []
for i in compas:
Edades.append(list(compas[i].values())[4])
print('La edad promedio es',round(sum(Edades)/len(Edades),2),'años')
promedio_edades(compas)
La edad promedio es 31.08 años
Paso 6. Se pide mostrar todas las instituciones sin repetición. Para eso creamos una función "instituciones". Iniciamos creando una lista vacía "Instituciones_Repetidas". Por medio de un ciclo "for" llenamos dicha lista con los valores en el key número 5 que corresponde a 'Institucion', luego convertimos la lista en un conjunto para eliminar los elementos repetidos y, finalmente, con otro ciclo "for" imprimimos los resultados.
def instituciones (compas):
Instituciones_Repetidas = []
for i in compas:
Instituciones_Repetidas.append(list(compas[i].values())[5])
Instituciones = set(Instituciones_Repetidas)
printmd('**Las instituciones son:**')
for i in Instituciones:
print(i)
instituciones(compas)
Las instituciones son:
Universidad del Valle Universidad Nacional de Colombia Universidad Simon Bolivar Universidad Antonio Nariño LAPP Universidad Industrial de Santander Universidad de los Andres Universidad Central de Venezuela Universidad Nacional Mayor de San Marcos