Skip to content
Snippets Groups Projects
Commit 339dbcec authored by Felipe Reyes Osorio's avatar Felipe Reyes Osorio
Browse files

Más compas

parent 5b4e8ce5
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
##### Felipe Reyes Osorio (@reyesf) ##### Felipe Reyes Osorio (@reyesf)
# Ejercicio 3 # Ejercicio 3
Con la función `newEntry` se puede poblar el diccionario. No era parte del ejercicio pero me facilitó el proceso. Con la función `newEntry` se puede poblar el diccionario. No era parte del ejercicio pero me facilitó el proceso.
* reyesf/Felipe/Reyes/Colombia/Cali/22/Univalle/Gimnasio * reyesf/Felipe/Reyes/Colombia/Cali/22/Univalle/Gimnasio
* varelaj/Jalil/Varela/Colombia/Palmira/21/Univalle/Age of mythology * varelaj/Jalil/Varela/Colombia/Palmira/21/Univalle/Age of mythology
* vargass/Sasiri/Vargas/Colombia/Cali/20/Univalle/Bailar * vargass/Sasiri Juliana/Vargas/Colombia/Cali/20/Univalle/Bailar
* britod/Daniel Arturo/Brito/Venezuela/Caracas/26/UCV/Patineta
* bermudezj/Jesus David/Bermudez/Colombia/Bogotá/25/Unal/Senderismo
* acerot/Tatiana/Acero/Colombia/Bogotá/23/Unal/Anime
* gomezc/Carla Elena/Gomez/Venezuela/Caracas/27/USB/Bicicleta
* floreza/Andrés David/Florez/Colombia/Cali/22/Univalle/Movement Culture
* cristian.velandia/Cristian/Velandia/Colombia/Bogotá/27/Unal/Anime
* juan-pineda/Juan Carlos/Basto/Colombia/Bucaramanga/37/UIS/Dibujar
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def newEntry(d): def newEntry(d):
info = input(r"Info de nueva entrada (sep. por /)") info = input(r"Info de nueva entrada (sep. por /)")
info = info.split("/") info = info.split("/")
print(info) print(info)
#info = matter/nombre/apellido/pais/residencia/edad/institucion/hobbie #info = matter/nombre/apellido/pais/residencia/edad/institucion/hobbie
subd = {"nombre": info[1], subd = {"nombre": info[1],
"apellido":info[2], "apellido":info[2],
"país":info[3], "país":info[3],
"residencia":info[4], "residencia":info[4],
"edad":info[5], "edad":info[5],
"institución":info[6], "institución":info[6],
"hobbie":info[7] "hobbie":info[7]
} }
d[info[0]] = subd d[info[0]] = subd
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
compas = {} compas = {}
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
newEntry(compas) newEntry(compas)
``` ```
%% Output %% Output
Info de nueva entrada (sep. por /)vargass/Sasiri/Vargas/Colombia/Cali/20/Univalle/Bailar Info de nueva entrada (sep. por /)vargass/Sasiri/Vargas/Colombia/Cali/20/Univalle/Bailar
['vargass', 'Sasiri', 'Vargas', 'Colombia', 'Cali', '20', 'Univalle', 'Bailar'] ['vargass', 'Sasiri', 'Vargas', 'Colombia', 'Cali', '20', 'Univalle', 'Bailar']
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Definimos las tres funciones que se piden. Todas usan el mismo principio de iterar sobre las llaves de `compas`, e inspeccionar los contenidos de cada una. Definimos las tres funciones que se piden. Todas usan el mismo principio de iterar sobre las llaves de `compas`, e inspeccionar los contenidos de cada una.
* La primera retorna una lista con los miembros del país seleccionado. Esta lista está lista para tabular. * La primera retorna una lista con los miembros del país seleccionado. Esta lista está lista para tabular.
* La segunda promedia las edades de todos en `compas`. * La segunda promedia las edades de todos en `compas`.
* La tercera retorna las instituciones de los `compas` y usamos un set para evitar entradas duplicadas. * La tercera retorna las instituciones de los `compas` y usamos un set para evitar entradas duplicadas.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def sortPais(d, pais): def sortPais(d, pais):
names = [] names = []
for matter in d: for matter in d:
if d[matter]["país"] == pais: if d[matter]["país"] == pais:
names.append(matter) names.append(matter)
final = [] final = []
for matter in names: for matter in names:
datos = [d[matter][datum] for datum in d[matter]] datos = [d[matter][datum] for datum in d[matter]]
datos.append(matter) datos.append(matter)
final.append(datos) final.append(datos)
return final return final
def edadMedia(d): def edadMedia(d):
prom = [] prom = []
for matter in d: for matter in d:
prom.append(float(compas[matter]["edad"])) prom.append(float(compas[matter]["edad"]))
print(sum(prom)/len(prom)) print(sum(prom)/len(prom))
def instit(d): def instit(d):
instituciones = set() instituciones = set()
for matter in d: for matter in d:
instituciones.add(compas[matter]["institución"]) instituciones.add(compas[matter]["institución"])
print(instituciones) print(instituciones)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Para tabular importamos la librería `tabular` y definimos un array con los títulos. Para ello iteramos sobre las llaves de cualquier entrada de `compas`. Para tabular importamos la librería `tabular` y definimos un array con los títulos. Para ello iteramos sobre las llaves de cualquier entrada de `compas`.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from tabulate import tabulate from tabulate import tabulate
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
datosParaTabla = sortPais(compas, "Colombia") datosParaTabla = sortPais(compas, "Colombia")
titulos = [key for key in compas["reyesf"]] titulos = [key for key in compas["reyesf"]]
titulos.append("mattermost") titulos.append("mattermost")
tabla = tabulate(datosParaTabla, headers = titulos,tablefmt='presto') tabla = tabulate(datosParaTabla, headers = titulos,tablefmt='presto')
print(tabla) print(tabla)
``` ```
%% Output %% Output
nombre | apellido | país | residencia | edad | institución | hobbie | mattermost nombre | apellido | país | residencia | edad | institución | hobbie | mattermost
----------+------------+----------+--------------+--------+---------------+------------------+-------------- ----------+------------+----------+--------------+--------+---------------+------------------+--------------
Felipe | Reyes | Colombia | Cali | 22 | Univalle | Gimnasio | reyesf Felipe | Reyes | Colombia | Cali | 22 | Univalle | Gimnasio | reyesf
Jalil | Varela | Colombia | Palmira | 21 | Univalle | Age of mythology | varelaj Jalil | Varela | Colombia | Palmira | 21 | Univalle | Age of mythology | varelaj
Sasiri | Vargas | Colombia | Cali | 20 | Univalle | Bailar | vargass Sasiri | Vargas | Colombia | Cali | 20 | Univalle | Bailar | vargass
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
edadMedia(compas) edadMedia(compas)
``` ```
%% Output %% Output
21.0 21.0
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
instit(compas) instit(compas)
``` ```
%% Output %% Output
{'Univalle'} {'Univalle'}
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` 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