diff --git a/ejercicio3.ipynb b/ejercicio3.ipynb
index d010289c7aa2a84ef3c415333e02f6e70043fcc8..08333e486076da13c63e96284a2421e807129b71 100644
--- a/ejercicio3.ipynb
+++ b/ejercicio3.ipynb
@@ -18,19 +18,29 @@
"## El problema que se debe resolver presenta el siguiente enunciado:\n",
"Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte de LaConga, uno del curso de datos y otro de afuera, y consulte su nombre completo, su nombre de usuario en mattermost, edad, pais de origen, ciudad donde residen, su especialidad cientÃfica, nombre del instituto en que estudian/laboran, y un hobbie o afición\n",
"\n",
+ "+ ## Parte 1\n",
"Cree un diccionario llamado “compasâ€, donde la llave sea el nombre de usuario en mattermost,y si depliego el valor almacenado, por ejemplo en compas[“juan-pinedaâ€], lo que obtengo esa la vez otro diccionario, con las llaves “nombreâ€, “apellidoâ€, “paÃsâ€, “residenciaâ€, “edadâ€,“instituciónâ€, “hobbieâ€\n",
"\n",
- "Cree 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, tabuladas en una forma fácil de entender. -Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él, y una forma de mostrar todas las instituciones (sin repetición)"
+ "+ ## Parte 2\n",
+ "Cree 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, tabuladas en una forma fácil de entender.\n",
+ "\n",
+ "\n",
+ "+ ## Parte 3\n",
+ "Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él.\n",
+ "\n",
+ "+ ## Parte 4\n",
+ "Busque una forma de mostrar todas las instituciones (sin repetición)"
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"compas={\n",
- "\"juan-pineda\":{\"nombres\":\"Juan Carlos\",\"apellidos\":\"Basto Pineda\",\"edad\":30,\"pais\":\"Colombia\",\"residencia\":\"Santander\",\"especialidad cientifica\":\"Astronomia\",\"institucion\":\"Universidad Industrial de Santander\",\"hobbie\":\"divulgacion cientifica\"},\n",
+ "\"juan-pineda\":\n",
+ "{\"nombres\":\"Juan Carlos\",\"apellidos\":\"Basto Pineda\",\"edad\":30,\"pais\":\"Colombia\",\"residencia\":\"Santander\",\"especialidad cientifica\":\"Astronomia\",\"institucion\":\"Universidad Industrial de Santander\",\"hobbie\":\"divulgacion cientifica\"},\n",
"\"camacho.reina\":\n",
"{\"nombres\":\"Reina\",\"apellidos\":\"Camacho Toro\",\"edad\":35,\"pais\":\"Venezuela\",\"residencia\":\"Francia\",\"especialidad cientifica\":\"Fisica Experimental\",\"institucion\":\"CNRS\",\"hobbie\":\"avistamiento de aves\"},\n",
"\"britod\":\n",
@@ -58,31 +68,91 @@
"}"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Algunos ejemplos de como de imprime la informacion de las personas"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 18,
"metadata": {},
"outputs": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "----------------------------------------------------\n",
- "nombres : Reina\n",
- "apellidos : Camacho Toro\n",
- "pais : Venezuela\n",
- "residencia : Francia\n",
- "edad : 36\n",
- "institucion : CNRS\n",
- "hobbie : avistamiento de aves\n",
- "usuario mattermost : camacho.reina\n",
- "\n"
- ]
+ "data": {
+ "text/plain": [
+ "{'nombres': 'Felipe',\n",
+ " 'apellidos': 'Reyes',\n",
+ " 'edad': 22,\n",
+ " 'pais': 'Colombia',\n",
+ " 'residencia': 'Cali',\n",
+ " 'especialidad cientifica': 'Materia Condensada',\n",
+ " 'institucion': 'Universidad del Valle',\n",
+ " 'hobbie': 'gimnasio'}"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compas[\"reyesf\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'nombres': 'Yhony',\n",
+ " 'apellidos': 'Mamamni Arce',\n",
+ " 'edad': 26,\n",
+ " 'pais': 'Perú',\n",
+ " 'residencia': 'Lima',\n",
+ " 'especialidad cientifica': 'Fisica del Estado Solido',\n",
+ " 'institucion': 'Universidad Nacional Mayor de San Marcos',\n",
+ " 'hobbie': 'correr, natacion, leer'}"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "def info_por_paises(x,y):\n",
+ "# Usando tab completa el nombre de la key. Curioso\n",
+ "compas[\"mamaniy\"]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Falta explicacion"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def info_por_paises(x,y,z=False):\n",
+ " \"\"\"\n",
+ " Esta funcion recibe el diccionario compas en el primer argumento, \n",
+ " una variable de tipo string con el pais de origen y una\n",
+ " variable Booleana si el usuario desea que en la información que \n",
+ " se imprime, aparezca ademas de todo, el usuario de Mattermost\n",
+ " \n",
" \n",
+ " Retorna la informacion de las personas originarias del pais y\n",
+ " \"\"\"\n",
" # Hago una copia del diccionario compas\n",
" copia_compas=x.copy()\n",
" \n",
@@ -92,172 +162,245 @@
" # Esta parte añade la key=\"usuario mattermost\"\n",
" # a los diccionarios que contienen la informacion \n",
" # de los compas.\n",
- " for r in keys_and_values:\n",
- " copia_compas[r[0]][\"usuario mattermost\"]=r[0]\n",
- " \n",
- " lista_paises=[]\n",
- " \n",
- " # Hago una lista de los paises de origen de los compas\n",
- " # Esta lista puede contener elementos repetidos\n",
- " for f in keys_and_values:\n",
- " lista_paises.append(copia_compas[f[0]][\"pais\"])\n",
- " \n",
- " set_paises=set(lista_paises)\n",
+ " if z:\n",
+ " for r in keys_and_values:\n",
+ " copia_compas[r[0]][\"usuario mattermost\"]=r[0]\n",
" \n",
" # Miro en cada \"subdiccionario\" el pais de origen,\n",
" # si este coincide con el pais que se pidio, se imprime el subdiccionario \n",
" # de manera bonita.\n",
" \n",
- " # La inspiracion para imprimir bonito la saque de\n",
- " # https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/\n",
" for h in keys_and_values:\n",
" if y==h[1][\"pais\"]:\n",
" print(\"----------------------------------------------------\")\n",
" for llave,valor in h[1].items():\n",
" print(llave,\":\",valor)\n",
" \n",
- " return \"\"\n",
- " \n",
- " \n",
- "print(info_por_paises(compas,\"Venezuela\")) "
+ " return \"\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ejemplos\n",
+ "\n",
+ "## Pais: *Venezuela*"
]
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 21,
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "{'nombres': 'Juan Carlos',\n",
- " 'apellidos': 'Basto Pineda',\n",
- " 'pais': 'Colombia',\n",
- " 'residencia': 'Santander',\n",
- " 'edad': '30',\n",
- " 'institucion': 'Universidad Industrial de Santander',\n",
- " 'hobbie': 'divulgacion cientifica'}"
- ]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "----------------------------------------------------\n",
+ "nombres : Reina\n",
+ "apellidos : Camacho Toro\n",
+ "edad : 35\n",
+ "pais : Venezuela\n",
+ "residencia : Francia\n",
+ "especialidad cientifica : Fisica Experimental\n",
+ "institucion : CNRS\n",
+ "hobbie : avistamiento de aves\n",
+ "----------------------------------------------------\n",
+ "nombres : Daniel Arturo\n",
+ "apellidos : Brito Urbina\n",
+ "edad : 26\n",
+ "pais : Venezuela\n",
+ "residencia : Caracas\n",
+ "especialidad cientifica : Teorias de Campos\n",
+ "institucion : Universidad Central de Venezuela\n",
+ "hobbie : Patinetas, Bicicletas y Video juegos\n",
+ "----------------------------------------------------\n",
+ "nombres : Eduardo Enrique\n",
+ "apellidos : Escalante Rondon\n",
+ "edad : 45\n",
+ "pais : Venezuela\n",
+ "residencia : Barquisimeto\n",
+ "especialidad cientifica : Dianmica Molecula\n",
+ "institucion : Universidad Centroccidental Lisandro Alvarado\n",
+ "hobbie : Leer y Escuchar Musica\n",
+ "----------------------------------------------------\n",
+ "nombres : Carla Elena\n",
+ "apellidos : Gomez Alvarado\n",
+ "edad : 27\n",
+ "pais : Venezuela\n",
+ "residencia : Caracas\n",
+ "especialidad cientifica : Fisica Molecular\n",
+ "institucion : Universidad Simon Bolivar\n",
+ "hobbie : Andar en bicicleta, Electronica, Gastronomia\n",
+ "----------------------------------------------------\n",
+ "nombres : Maria Jose\n",
+ "apellidos : Ramos Sotillo\n",
+ "edad : 23\n",
+ "pais : Venezuela\n",
+ "residencia : Merida\n",
+ "especialidad cientifica : Fisica\n",
+ "institucion : Universidad de los Andes\n",
+ "hobbie : escribir\n",
+ "----------------------------------------------------\n",
+ "nombres : Gerardo Jesus\n",
+ "apellidos : Semprum Suarez\n",
+ "edad : 24\n",
+ "pais : Venezuela\n",
+ "residencia : Caracas\n",
+ "especialidad cientifica : GeofÃsica\n",
+ "institucion : Universidad Central de Venezuela\n",
+ "hobbie : Artes Marciales\n",
+ "\n"
+ ]
}
],
"source": [
- "compas[\"juan-pineda\"]"
+ "print(info_por_paises(compas,\"Venezuela\")) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ejemplo\n",
+ "## Pais: *Peru*, retornando ademas el usuario de mattermost"
]
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 23,
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "{'nombres': 'Reina',\n",
- " 'apellidos': 'Camacho Toro',\n",
- " 'pais': 'Venezuela',\n",
- " 'residencia': 'Francia',\n",
- " 'edad': '36',\n",
- " 'institucion': 'CNRS',\n",
- " 'hobbie': 'avistamiento de aves'}"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "----------------------------------------------------\n",
+ "nombres : Luis Alberto\n",
+ "apellidos : Leon Andonayre\n",
+ "edad : 22\n",
+ "pais : Perú\n",
+ "residencia : Provincia Constituciona del Callao\n",
+ "especialidad cientifica : Gravitacion\n",
+ "institucion : Universidad Nacional Mayor de San Marcos\n",
+ "hobbie : Escuchar musica y tocar la guitarra\n",
+ "usuario mattermost : leonl\n",
+ "----------------------------------------------------\n",
+ "nombres : Yhony\n",
+ "apellidos : Mamamni Arce\n",
+ "edad : 26\n",
+ "pais : Perú\n",
+ "residencia : Lima\n",
+ "especialidad cientifica : Fisica del Estado Solido\n",
+ "institucion : Universidad Nacional Mayor de San Marcos\n",
+ "hobbie : correr, natacion, leer\n",
+ "usuario mattermost : mamaniy\n",
+ "\n"
+ ]
}
],
"source": [
- "compas[\"camacho.reina\"]"
+ "print(info_por_paises(compas,\"Perú\",True)) "
]
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 32,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'nombres': 'Jalil',\n",
- " 'apellidos': 'Varela Manjarres',\n",
- " 'pais': 'Colombia',\n",
- " 'residencia': 'Valle',\n",
- " 'edad': '25',\n",
- " 'institucion': 'Universidad del Valle',\n",
- " 'hobbie': 'viajar'}"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "compas[\"jalil\"]"
+ "def promedio_edad_compas(x):\n",
+ " \"\"\"\n",
+ " Esta funcion recibe como unico argumento el diccionario compas.\n",
+ " \n",
+ " Retorna el promedio de las edades\n",
+ " \"\"\"\n",
+ " sub_diccionarios=x.values()\n",
+ " \n",
+ " edades=[value[\"edad\"] for value in sub_diccionarios]\n",
+ " \n",
+ " return sum(edades)/len(edades)"
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 33,
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "{'nombres': 'Jennifer',\n",
- " 'apellidos': 'Grisales',\n",
- " 'pais': 'Colombia',\n",
- " 'residencia': 'Cucuta',\n",
- " 'edad': '27',\n",
- " 'institucion': 'Universidad Industrial de Santander',\n",
- " 'hobbie': 'caminata y deporte'}"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "27.615384615384617\n"
+ ]
}
],
"source": [
- "compas[\"grisalesj\"]"
+ "print(promedio_edad_compas(compas))"
]
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def instituciones_compas(x):\n",
+ " \"\"\"\n",
+ " Esta funcion recibe como unico argumento el diccionario compas.\n",
+ " \n",
+ " Retorna las instituciones de las personas sin repeticion\n",
+ " \"\"\"\n",
+ " \n",
+ " dicc_personas=x.values()\n",
+ " \n",
+ " # Hago una lista de las instituciones donde estudian y/0 trabajan los compas\n",
+ " # Esta lista puede contener elementos repetidos\n",
+ " lista_insti=[dicc[\"institucion\"] for dicc in dicc_personas]\n",
+ " \n",
+ " set_insti=set(lista_insti)\n",
+ " for insti in set_insti:\n",
+ " print(insti)\n",
+ " return \"\" "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
"metadata": {},
"outputs": [
{
- "data": {
- "text/plain": [
- "{'nombres': 'David',\n",
- " 'apellidos': 'Ramos',\n",
- " 'pais': 'Colombia',\n",
- " 'residencia': 'Santander',\n",
- " 'edad': '26',\n",
- " 'institucion': 'Universidad Industrial de Santander',\n",
- " 'hobbie': 'escuchar y tocar musica'}"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Universidad Nacional de Colombia\n",
+ "CNRS\n",
+ "Universidad Nacional Mayor de San Marcos\n",
+ "Universidad de los Andes\n",
+ "Universidad Simon Bolivar\n",
+ "Universidad del Valle\n",
+ "Universidad Central de Venezuela\n",
+ "Universidad Antonio Nariño\n",
+ "Universidad Industrial de Santander\n",
+ "Universidad Centroccidental Lisandro Alvarado\n",
+ "\n"
+ ]
}
],
"source": [
- "compas[\"ramosd\"]"
+ "\n",
+ "print(instituciones_compas(compas))"
]
},
{
- "cell_type": "code",
- "execution_count": null,
+ "cell_type": "markdown",
"metadata": {},
- "outputs": [],
- "source": []
+ "source": [
+ "### Bibliografia\n",
+ "\n",
+ "+ Imprimir bonito el contenido de un diccionario: https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/"
+ ]
}
],
"metadata": {