"Busque una forma de mostrar todas las instituciones (sin repetición)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"En la siguiente celda creamos el diccionario `compas` con la informacion que recolectamos.\n",
"\n",
"Debe haber una forma de poder cargar esta informacion desde un archivo `.txt`, pero aun no la reviso."
]
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -72,12 +82,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Algunos ejemplos de como de imprime la informacion de las personas"
"### Algunos ejemplos de como se imprime la informacion de las personas"
]
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 89,
"metadata": {},
"outputs": [
{
...
...
@@ -93,7 +103,7 @@
" 'hobbie': 'gimnasio'}"
]
},
"execution_count": 18,
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -104,7 +114,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 90,
"metadata": {},
"outputs": [
{
...
...
@@ -120,7 +130,7 @@
" 'hobbie': 'correr, natacion, leer'}"
]
},
"execution_count": 19,
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -134,12 +144,28 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Falta explicacion"
"---\n",
"### Solucion a la parte 2\n",
"En la siguiente celda creamos una funcion que llamamos `info_por_paises`, la cual recibe tres argumentos. El primero es el diccionario compas que creamos anteriormente. El segundo es una variable de tipo _string_ donde escribimos el pais de origen de las personas. El tercer y ultimo argumento es una variable de tipo _bool_ cuyo valor por defecto es `False`; si el ususario ingresa `True`, entre la informacion que imprime la funcion, estará el usuario de mattermost.\n",
"\n",
"Lo primero que hace esta función es, hacer una copia del diccionario x usando el metodo `.copy()`.A esta copia la llame `copia_compas`.\n",
"\n",
"Esto lo hice porque _creo_ que asi evito posibles problemas.\n",
"\n",
"La siguiente linea ejecuta el metodo `.items` del diccionario `copia_compas`. Esto crea una lista cuyos elementos son las tuplas `(llave,valor)`. Con esta lista es con la que trabaja la funcion.\n",
"(_Basicamente, converti el diccionario compas en una lista_). A esta lista la llame `keys_and_values`.\n",
"\n",
"Es importante entender que en las tuplas de la lista `keys_and_values`, el primer elemento es un _string_, y que el segundo elemento es un diccionario de Python.\n",
"\n",
"Para añadir el usuario de mmattermost, comprobamos si la variable _bool_ z es `True`. En caso afirmativo, hacemos un loop por la lista `keys_and_values`, añadiendo a cada uno de los diccionarios (`values`) una nueva llave llamada `usuario mattermost`, cuyo valor será la correspondiente llave (`key`).\n",
"\n",
"Para imprimir la informacion de las personas segun su pais de origen. Hacemos un ciclo for que \"recorre\" cada una de las tuplas en la lista `keys_and_values`. \n",
"En cada iteración se comprueba si el valor de la llave `\"pais\"` del diccionario coincide con el pais que introdujo el usuario. En caso afirmativo, se imprime \"apropiadamente\" el contenido del diccionario.\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -151,7 +177,7 @@
" se imprime, aparezca ademas de todo, el usuario de Mattermost\n",
" \n",
" \n",
" Retorna la informacion de las personas originarias del pais y\n",
" Retorna la informacion de las personas originarias del pais ingresado en la variable y.\n",
" \"\"\"\n",
" # Hago una copia del diccionario compas\n",
" copia_compas=x.copy()\n",
...
...
@@ -162,18 +188,19 @@
" # Esta parte añade la key=\"usuario mattermost\"\n",
" # a los diccionarios que contienen la informacion \n",
"+ Imprimir bonito el contenido de un diccionario: https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Esto sale si el argumento es True\n"
]
},
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def f_prueba(ss=False):\n",
" if ss:\n",
" print(\"Esto sale si el argumento es True\")\n",
" else:\n",
" print(\"Esto sale si el argumento es False\")\n",
" return \"\"\n",
"\n",
"f_prueba(True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
...
...
%% Cell type:markdown id: tags:
# *Mi nombre es Jesus David Bermudez Sanchez, soy estudiante de la Maestria en Fisica de la Universidad Nacional de Colombia, Sede Bogotá*
---
%% Cell type:markdown id: tags:
# Amigos congueros
## El problema que se debe resolver presenta el siguiente enunciado:
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
+ ## Parte 1
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”
+ ## Parte 2
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.
+ ## Parte 3
Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él.
+ ## Parte 4
Busque una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:markdown id: tags:
---
En la siguiente celda creamos el diccionario `compas` con la informacion que recolectamos.
Debe haber una forma de poder cargar esta informacion desde un archivo `.txt`, pero aun no la reviso.
%% Cell type:code id: tags:
``` python
compas={
"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"},
"camacho.reina":
{"nombres":"Reina","apellidos":"Camacho Toro","edad":35,"pais":"Venezuela","residencia":"Francia","especialidad cientifica":"Fisica Experimental","institucion":"CNRS","hobbie":"avistamiento de aves"},
"britod":
{"nombres":"Daniel Arturo","apellidos":"Brito Urbina","edad":26,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Teorias de Campos","institucion":"Universidad Central de Venezuela","hobbie":"Patinetas, Bicicletas y Video juegos"},
"carrilloj":
{"nombres":"Juan Guillermo","apellidos":"Carrillo Reyes","edad":25,"pais":"Colombia","residencia":"Bogota","especialidad cientifica":"Astronomia","institucion":"Universidad Nacional de Colombia","hobbie":"Basket y Videojuegos"},
{"nombres":"Carla Elena","apellidos":"Gomez Alvarado","edad":27,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Fisica Molecular","institucion":"Universidad Simon Bolivar","hobbie":"Andar en bicicleta, Electronica, Gastronomia"},
"leonl":
{"nombres":"Luis Alberto","apellidos":"Leon Andonayre","edad":22,"pais":"Perú","residencia":"Provincia Constituciona del Callao","especialidad cientifica":"Gravitacion","institucion":"Universidad Nacional Mayor de San Marcos","hobbie":"Escuchar musica y tocar la guitarra"},
"mamaniy"
:{"nombres":"Yhony","apellidos":"Mamamni Arce","edad":26,"pais":"Perú","residencia":"Lima","especialidad cientifica":"Fisica del Estado Solido","institucion":"Universidad Nacional Mayor de San Marcos","hobbie":"correr, natacion, leer"},
"navasa":
{"nombres":"Alfonso","apellidos":"Navas","edad":24,"pais":"Colombia","residencia":"Bogota","especialidad cientifica":"Fisica de Sistemas Complejos, Ecologia","institucion":"Universidad Nacional de Colombia","hobbie":"crossfit"},
"pinzonc":
{"nombres":"Carlos Andres","apellidos":"Pinzon Osorio","edad":30,"pais":"Colombia","residencia":"Bogotá","especialidad cientifica":"Altas Energias","institucion":"Universidad Antonio Nariño","hobbie":"Atletismo"},
"ramosm":
{"nombres":"Maria Jose","apellidos":"Ramos Sotillo","edad":23,"pais":"Venezuela","residencia":"Merida","especialidad cientifica":"Fisica","institucion":"Universidad de los Andes","hobbie":"escribir"},
"reyesf":
{"nombres":"Felipe","apellidos":"Reyes","edad":22,"pais":"Colombia","residencia":"Cali","especialidad cientifica":"Materia Condensada","institucion":"Universidad del Valle","hobbie":"gimnasio"},
"semprumg":
{"nombres":"Gerardo Jesus","apellidos":"Semprum Suarez","edad":24,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Geofísica","institucion":"Universidad Central de Venezuela","hobbie":"Artes Marciales"},
}
```
%% Cell type:markdown id: tags:
### Algunos ejemplos de como de imprime la informacion de las personas
### Algunos ejemplos de como se imprime la informacion de las personas
%% Cell type:code id: tags:
``` python
compas["reyesf"]
```
%% Output
{'nombres': 'Felipe',
'apellidos': 'Reyes',
'edad': 22,
'pais': 'Colombia',
'residencia': 'Cali',
'especialidad cientifica': 'Materia Condensada',
'institucion': 'Universidad del Valle',
'hobbie': 'gimnasio'}
%% Cell type:code id: tags:
``` python
# Usando tab completa el nombre de la key. Curioso
compas["mamaniy"]
```
%% Output
{'nombres': 'Yhony',
'apellidos': 'Mamamni Arce',
'edad': 26,
'pais': 'Perú',
'residencia': 'Lima',
'especialidad cientifica': 'Fisica del Estado Solido',
'institucion': 'Universidad Nacional Mayor de San Marcos',
'hobbie': 'correr, natacion, leer'}
%% Cell type:markdown id: tags:
# Falta explicacion
---
### Solucion a la parte 2
En la siguiente celda creamos una funcion que llamamos `info_por_paises`, la cual recibe tres argumentos. El primero es el diccionario compas que creamos anteriormente. El segundo es una variable de tipo _string_ donde escribimos el pais de origen de las personas. El tercer y ultimo argumento es una variable de tipo _bool_ cuyo valor por defecto es `False`; si el ususario ingresa `True`, entre la informacion que imprime la funcion, estará el usuario de mattermost.
Lo primero que hace esta función es, hacer una copia del diccionario x usando el metodo `.copy()`.A esta copia la llame `copia_compas`.
Esto lo hice porque _creo_ que asi evito posibles problemas.
La siguiente linea ejecuta el metodo `.items` del diccionario `copia_compas`. Esto crea una lista cuyos elementos son las tuplas `(llave,valor)`. Con esta lista es con la que trabaja la funcion.
(_Basicamente, converti el diccionario compas en una lista_). A esta lista la llame `keys_and_values`.
Es importante entender que en las tuplas de la lista `keys_and_values`, el primer elemento es un _string_, y que el segundo elemento es un diccionario de Python.
Para añadir el usuario de mmattermost, comprobamos si la variable _bool_ z es `True`. En caso afirmativo, hacemos un loop por la lista `keys_and_values`, añadiendo a cada uno de los diccionarios (`values`) una nueva llave llamada `usuario mattermost`, cuyo valor será la correspondiente llave (`key`).
Para imprimir la informacion de las personas segun su pais de origen. Hacemos un ciclo for que "recorre" cada una de las tuplas en la lista `keys_and_values`.
En cada iteración se comprueba si el valor de la llave `"pais"` del diccionario coincide con el pais que introdujo el usuario. En caso afirmativo, se imprime "apropiadamente" el contenido del diccionario.
%% Cell type:code id: tags:
``` python
definfo_por_paises(x,y,z=False):
"""
Esta funcion recibe el diccionario compas en el primer argumento,
una variable de tipo string con el pais de origen y una
variable Booleana si el usuario desea que en la información que
se imprime, aparezca ademas de todo, el usuario de Mattermost
Retorna la informacion de las personas originarias del pais y
Retorna la informacion de las personas originarias del pais ingresado en la variable y.
"""
# Hago una copia del diccionario compas
copia_compas=x.copy()
# Saco la lista de (key,values)
keys_and_values=copia_compas.items()
# Esta parte añade la key="usuario mattermost"
# a los diccionarios que contienen la informacion
# de los compas.
ifz:
forrinkeys_and_values:
copia_compas[r[0]]["usuario mattermost"]=r[0]
fora,binkeys_and_values:
b["usuario mattermost"]=a
# Miro en cada "subdiccionario" el pais de origen,
# si este coincide con el pais que se pidio, se imprime el subdiccionario