Skip to content
Snippets Groups Projects
Commit 331185d9 authored by Erick Jhordan Reategui Rojas's avatar Erick Jhordan Reategui Rojas
Browse files

Final ex3

parent 4497fb09
Branches master
No related tags found
No related merge requests found
This diff is collapsed.
%% Cell type:markdown id: tags:
### Erick Jhordan Reategui Rojas, Callao, Perú
## 3 Ejercicio No. 3 - Amigos congueros
• 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.<br/>
• 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 es
a la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”,
“institución”, “hobbie”.<br/>
• 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)
%% Cell type:code id: tags:
``` python
compas = {
'sadeddins' : { 'nombre': 'Siria' , 'apellido': 'Sadeddin' ,
'país': 'Venezuela' , 'residencia': 'Barranquilla, Colombia' ,
'edad': 30 , 'institución': 'Universidad Simón Bolívar' ,
'hobbie': 'Data science' },
'ladinoj' : { 'nombre': 'Jose' , 'apellido': 'Ladino' ,
'país': 'Colombia' , 'residencia': 'Bogotá, Colombia' ,
'edad': 24 , 'institución': 'Universidad Nacional de Colombia' ,
'hobbie': 'Skate, ciclismo, guitarra eléctrica' },
'grisalesj' : { 'nombre': 'Jennifer' , 'apellido': 'Grisales' ,
'país': 'Colombia' , 'residencia': 'Bucaramanga, Colombia' ,
'edad': 27 , 'institución': 'Universidad Industrial de Santander' ,
'hobbie': 'Rugby'},
'andreatugores' : { 'nombre': 'Andrea' , 'apellido': 'Tugores' ,
'país': 'Venezuela' , 'residencia': 'Caracas, Venezuela' ,
'edad': 24 , 'institución': 'Universidad Central de Venezuela' ,
'hobbie': 'Tennis'},
'leonl' : { 'nombre': 'Luis' , 'apellido': 'León' ,
'país': 'Perú' , 'residencia': 'Callao, Perú' ,
'edad': 22 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Escuchar música, tocar guitarra'},
'teofilo' : { 'nombre': 'Teófilo' , 'apellido': 'Vargas' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 54 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Wing Chun Kuen'},
'serranoj' : { 'nombre': 'José' , 'apellido': 'Serrano' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 27 , 'institución': 'Universidad Nacional de Ingeniería' ,
'hobbie': 'Videojuegos'},
'vinascor' : { 'nombre': 'Rafael' , 'apellido': 'Vinasco' ,
'país': 'Colombia' , 'residencia': 'Bogotá, Colombia' ,
'edad': 26 , 'institución': 'Universidad nacional de Colombia' ,
'edad': 26 , 'institución': 'Universidad Nacional de Colombia' ,
'hobbie': 'Ajedrez, Nadar'},
'omarasto' : { 'nombre': 'Omar' , 'apellido': 'Asto' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 25 , 'institución': 'Universidad Nacional de Ingeniería' ,
'hobbie': 'Leer periódico'},
'alexis.tremolada' : { 'nombre': 'Alexis' , 'apellido': 'Tremolada' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 23 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Leer, jugar videojuegos, ver series'}
}
```
%% Cell type:code id: tags:
``` python
compas.keys()
```
%% Output
%% Cell type:markdown id: tags:
dict_keys(['sadeddins', 'ladinoj', 'grisalesj', 'andreatugores', 'leonl', 'teofilo', 'serranoj', 'vinascor', 'omarasto', 'alexis.tremolada'])
Para el desarrollo de las preguntas se encontró un ejemplo ilustrativo de las diversas operaciones posibles con diccionarios en la dirección https://es.stackoverflow.com/questions/204888/diccionarios-dentro-de-un-diccionario:
%% Cell type:code id: tags:
``` python
compas.items()
```
%% Cell type:raw id: tags:
%% Output
d1 = {
'frutas': {
' manzanas': [' verdes', ' 7', ' rojas', ' 5'],
'uvas': [' negras', ' 5', ' verdes', ' 3']
},
' verduras': {
'papa': ['negras', ' 50', ' blancas', ' 20'],
'cebolla': [' blancas', ' 30']
},
'cereales': {
' arroz': [' fino',' 600', ' largo', ' 800']
}
}
dict_items([('sadeddins', {'nombre': 'Siria', 'apellido': 'Sadeddin', 'país': 'Venezuela', 'residencia': 'Barranquilla, Colombia', 'edad': 30, 'institución': 'Universidad Simón Bolívar', 'hobbie': 'Data science'}), ('ladinoj', {'nombre': 'Jose', 'apellido': 'Ladino', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 24, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Skate, ciclismo, guitarra eléctrica'}), ('grisalesj', {'nombre': 'Jennifer', 'apellido': 'Grisales', 'país': 'Colombia', 'residencia': 'Bucaramanga, Colombia', 'edad': 27, 'institución': 'Universidad Industrial de Santander', 'hobbie': 'Rugby'}), ('andreatugores', {'nombre': 'Andrea', 'apellido': 'Tugores', 'país': 'Venezuela', 'residencia': 'Caracas, Venezuela', 'edad': 24, 'institución': 'Universidad Central de Venezuela', 'hobbie': 'Tennis'}), ('leonl', {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}), ('teofilo', {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}), ('serranoj', {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}), ('vinascor', {'nombre': 'Rafael', 'apellido': 'Vinasco', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 26, 'institución': 'Universidad nacional de Colombia', 'hobbie': 'Ajedrez, Nadar'}), ('omarasto', {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}), ('alexis.tremolada', {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'})])
# for clave, valor in d1.items():
# La clave sería por ejemplo "frutas", el valor sería en este caso
# otro diccionario. Con `valor.keys()` sacamos la lista
# de claves de este otro diccionario, que serían los nombres de las frutas
elementos = ", ".join(valor.keys())
print(clave, ":", elementos)
%% Cell type:code id: tags:
frutas : manzanas, uvas
verduras : papa, cebolla
cereales : arroz
``` python
valor.keys()
```
%% Output
%% Cell type:markdown id: tags:
dict_keys(['nombre', 'apellido', 'país', 'residencia', 'edad', 'institución', 'hobbie'])
A partir del ejemplo anterior se procede a explorar las características de los diccionarios:
%% Cell type:code id: tags:
``` python
for clave, valor in compas.items():
# La clave sería por ejemplo "frutas", el valor sería en este caso
# otro diccionario. Con `valor.keys()` sacamos la lista
# de claves de este otro diccionario, que serían los nombres de las frutas
elementos = ", ".join(valor.keys())
print(clave, ":", elementos)
elementos = ", ".join(valor.keys())
print(clave, ":", elementos)
```
%% Output
sadeddins : nombre, apellido, país, residencia, edad, institución, hobbie
ladinoj : nombre, apellido, país, residencia, edad, institución, hobbie
grisalesj : nombre, apellido, país, residencia, edad, institución, hobbie
andreatugores : nombre, apellido, país, residencia, edad, institución, hobbie
leonl : nombre, apellido, país, residencia, edad, institución, hobbie
teofilo : nombre, apellido, país, residencia, edad, institución, hobbie
serranoj : nombre, apellido, país, residencia, edad, institución, hobbie
vinascor : nombre, apellido, país, residencia, edad, institución, hobbie
omarasto : nombre, apellido, país, residencia, edad, institución, hobbie
alexis.tremolada : nombre, apellido, país, residencia, edad, institución, hobbie
%% Cell type:code id: tags:
``` python
for clave, valor in compas.items():
print(clave)
```
%% Output
sadeddins
ladinoj
grisalesj
andreatugores
leonl
teofilo
serranoj
vinascor
omarasto
alexis.tremolada
%% Cell type:markdown id: tags:
### 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.
%% Cell type:markdown id: tags:
Se prueba un ejemplo con un caso particular:
%% Cell type:code id: tags:
``` python
if compas["omarasto"]['país'] == "Perú":
print(compas["omarasto"])
```
%% Output
{'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
%% Cell type:markdown id: tags:
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.
Se expande el ejemplo para obtener varios diccionarios:
%% Cell type:code id: tags:
``` python
for clave, valor in compas.items():
# print(clave)
if compas[clave]['país'] == "Perú":
print(clave, ":", compas[clave],"\n")
```
%% Output
leonl : {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}
teofilo : {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}
serranoj : {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}
omarasto : {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
alexis.tremolada : {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'}
%% Cell type:markdown id: tags:
Finalmente se construye la función que recibirá como argumentos el diccionario "compas" y el país
%% Cell type:code id: tags:
``` python
def f1(dicc, pais):
for clave, valor in compas.items():
if compas[clave]['país'] == pais:
print(clave, ":", compas[clave],"\n")
print(clave, ":\n", compas[clave],"\n")
```
%% Cell type:markdown id: tags:
#### Ejemplos
%% Cell type:code id: tags:
``` python
f1(compas, "Perú")
```
%% Output
leonl : {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}
leonl :
{'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}
teofilo : {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}
teofilo :
{'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}
serranoj : {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}
serranoj :
{'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}
omarasto : {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
omarasto :
{'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
alexis.tremolada : {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'}
alexis.tremolada :
{'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'}
%% Cell type:code id: tags:
``` python
f1(compas, "Colombia")
```
%% Output
ladinoj : {'nombre': 'Jose', 'apellido': 'Ladino', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 24, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Skate, ciclismo, guitarra eléctrica'}
ladinoj :
{'nombre': 'Jose', 'apellido': 'Ladino', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 24, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Skate, ciclismo, guitarra eléctrica'}
grisalesj : {'nombre': 'Jennifer', 'apellido': 'Grisales', 'país': 'Colombia', 'residencia': 'Bucaramanga, Colombia', 'edad': 27, 'institución': 'Universidad Industrial de Santander', 'hobbie': 'Rugby'}
grisalesj :
{'nombre': 'Jennifer', 'apellido': 'Grisales', 'país': 'Colombia', 'residencia': 'Bucaramanga, Colombia', 'edad': 27, 'institución': 'Universidad Industrial de Santander', 'hobbie': 'Rugby'}
vinascor : {'nombre': 'Rafael', 'apellido': 'Vinasco', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 26, 'institución': 'Universidad nacional de Colombia', 'hobbie': 'Ajedrez, Nadar'}
vinascor :
{'nombre': 'Rafael', 'apellido': 'Vinasco', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 26, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Ajedrez, Nadar'}
%% Cell type:markdown id: tags:
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)
### Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él
%% Cell type:markdown id: tags:
Se crea una lista para acumular los valores de las edades y luego se procede a completarla:
%% Cell type:code id: tags:
``` python
edades = []
for clave, valor in compas.items():
edades.append(compas[clave]['edad'])
print(compas[clave]['edad'])
edades
```
%% Output
30
24
27
24
22
54
27
26
25
23
[30, 24, 27, 24, 22, 54, 27, 26, 25, 23]
%% Cell type:markdown id: tags:
Luego se usa la librería "numpy" para hallar el promedio de edades:
%% Cell type:code id: tags:
``` python
import numpy as np
np.mean(edades)
```
%% Output
28.2
%% Cell type:code id: tags:
%% Cell type:markdown id: tags:
``` python
instituciones = []
for clave, valor in compas.items():
instituciones.append(compas[clave]['institución'])
print(compas[clave]['institución'])
```
### Busque una forma de mostrar todas las instituciones (sin repetición)
%% Output
%% Cell type:markdown id: tags:
Universidad Simón Bolívar
Universidad Nacional de Colombia
Universidad Industrial de Santander
Universidad Central de Venezuela
Universidad Nacional Mayor de San Marcos
Universidad Nacional Mayor de San Marcos
Universidad Nacional de Ingeniería
Universidad nacional de Colombia
Universidad Nacional de Ingeniería
Universidad Nacional Mayor de San Marcos
Se crea una lista para acumular los valores de las instituciones y luego se procede a completarla:
%% Cell type:code id: tags:
``` python
instituciones = []
for clave, valor in compas.items():
instituciones.append(compas[clave]['institución'])
instituciones
```
%% Output
['Universidad Simón Bolívar',
'Universidad Nacional de Colombia',
'Universidad Industrial de Santander',
'Universidad Central de Venezuela',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional de Ingeniería',
'Universidad nacional de Colombia',
'Universidad Nacional de Colombia',
'Universidad Nacional de Ingeniería',
'Universidad Nacional Mayor de San Marcos']
%% Cell type:markdown id: tags:
Para evitar la repetición de instituciones, se transforma la lista a un "set":
%% Cell type:code id: tags:
``` python
set(instituciones)
```
%% Output
{'Universidad Central de Venezuela',
'Universidad Industrial de Santander',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional de Colombia',
'Universidad Nacional de Ingeniería',
'Universidad Simón Bolívar',
'Universidad nacional de Colombia'}
'Universidad Simón Bolívar'}
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment