Está en la página 1de 11

Programación IWI131

Leonardo Ramírez

Guía de Ejercicios Certamen 2


Dudas o correcciones a Leonardo.ramirezl@sansano.usm.cl

[LISTAS Y TUPLAS]
I)

Don Peter tiene un listado de sus alumnos con su respectivo rol en la lista de tuplas Rol. Y
además la nota de estos en la lista Notas:

Rol=[(“Leo”,“201660620-3”),(“Pedro”,”201555001-7”),
(“Javier”,”201655089-1”),…]
Notas=[(”201655089-1”,55),(”201555001-7”,30),(“201660620-3”,100),… ]

Cree la función agregar(nombre,rol,nota) que recibe los string nombre, rol, nota. La función debe
agregar los datos del alumno a las listas Rol y Notas, que son variables globales.

agregar(“Renzo”,”201760600-k”,45)
>>>
print Rol
[(“Leo”,“201660620-3”),(“Pedro”,”201555001-7”),(“Javier”,”201655089-
1”),… ,(“Renzo”,”201760600-k”)]
print Notas
[(”201655089-1”,55),(”201555001-7”,30),(“201660620-3”,100),…
,(”201760600-k”,45)]

Cree la función identidad(Rol, nombre) que recibe la lista Rol y un string con un nombre. La
función entrega el rol de la persona del nombre entregado.
identidad(Rol,”Leo”)
>>>”201660620-3”

Cree la función aprobados(Rol,Notas) que recibe las listas de tuplas Rol y Notas. La función
debe entregar una lista con los nombres de los aprobados. Un alumno aprueba cuando su nota es
mayor o igual a 55.
aprobados(Rol,Notas)
>>>[“Leo”,”Javier”]

Cree la función ranking(Rol,Notas) que recibe las listas de tuplas Rol y Notas. La función debe
entregar una lista con los nombres de los estudiantes en orden descendente respecto a su nota.
Ranking(Rol,Notas)
>>>[“Leo”,”Javier”,”Pedro”]
Programación IWI131
Leonardo Ramírez

II)
La Radio Rock&Pop ha lanzado un listado de artistas chilenos, con su nombre, su edad, y su
calificación c/r a su influencia en la escena musical nacional:
Artistas=[(“Pedropiedra”, 39, 4.2), (“Ana Tijoux”, 40, 4.3),
(“Mon Laferte”, 34, 3.8), (“Nano Stern”, 32, 3.3), (“C-Funk”,
40, 3.6), (“Dulce y Agraz”, 20, 2.8), (“Aldo Asenjo”, 49, 4.5),
(“Alvaro Henriquez”, 48, 4.9), …]

Para un análisis de esta información se necesitan realizar las siguientes funciones:

Cree la función nota(Artistas,Nombre) que recibe la lista con las calificaciones y el nombre de un
artista. La función debe entregar la calificación de este.
nota(Artistas, “Aldo Asenjo”)
>>>4.5
Cree la función ranking(Artistas) que recibe la lista con las calificaciones. La función debe
entregar una lista con los nombres de los artistas, ordenada según su calificación en orden
descendente.
ranking(Artistas)
>>>[“Alvaro Henriquez”, “Aldo Asenjo”, “Ana Tijoux”,
“Pedropiedra”, “Mon Laferte”, “C-Funk”, “Nano Stern”, “Dulce y
Agraz”]

Cree la función edades(Artistas) que recibe la lista con las calificaciones. La función debe
entregar una lista de tuplas (nombre, edad), ordenada según su edad en orden ascendente.
edades(Artistas)
>>>[(“Dulce y Agraz”,20), (“Nano Stern”,32), (“Mon Laferte”,34),
(“Pedropiedra”,39), (“Ana Tijoux”, 40), (“C-Funk”, 40), (“Alvaro
Henriquez”, 48), (“Aldo Asenjo”, 49)]

Cree la función generación(Artistas,entero) que recibe la lista con la calificación y un número


entero. La función debe entregar una tupla con todos los artistas cuya edad sea cercana al entero.
Una edad se considera cercana si es a lo más 5 años mayor o menor a otra. La tupla no tiene
orden particular.
generación(Artistas,38)
>>>(“Pedropiedra”, ”Ana Tijoux”, “Mon Laferte”, “C-Funk”)

Cree la función mejor_proyección(Artistas) que reciba la lista con la calificación. La función


debe entregar el nombre con el artista con mayor proyección musical. La proyección musical se
calcula:
𝐶𝑎𝑙𝑖𝑓𝑖𝑐𝑎𝑐𝑖ó𝑛
𝑃𝑟𝑜𝑦𝑒𝑐𝑐𝑖ó𝑛 = ∗ 100
𝐸𝑑𝑎𝑑
mejor_proyección(Artistas)
>>>”Dulce y Agraz”
Programación IWI131
Leonardo Ramírez

III)
Pymart, es una cadena de supermercados que está en proceso de restructurar su estrategia de
negocios. Dada la férrea competencia existente, ha diseñado un plan de ventas con descuentos
para sus productos, según el día de la semana. Esta información se encuentra en la lista
descuentos, en dónde el índice de sus componentes representa los días de la semana (0=Lunes,
1=Martes, ..., 6=Domingo). Las tuplas que indican el tipo de producto con descuento, y el
porcentaje de descuento a aplicar:

descuentos =[('Abarrotes',30),('Carnes',30),('Aseo',20),
('Postres',25),('Cocktail','15'),('Licores',20),('Panaderia','30
')]

Además, el supermercado tiene la información de todos sus productos a la venta en la lista de


tuplas productos, en dónde cada tupla contiene el nombre del producto, y la sección a que ´este
pertenece.

productos = [('Mani','Cocktail'), ('Fideos','Abarrotes'),


('Arroz','Abarrotes'), ('Cafe','Desayuno'),
('Helados','Postres'),('Cloro','Aseo'),
('Cerdo','Carnes'),('Pasteles','Panaderia'),...]

Considerando ambas estructuras como variables globales, a usted se le pide:

a) Cree la función productos descuento(dia), que recibe como parámetro un día específico. Esta
función debe retornar una lista con el nombre de todos los productos en promoción.
>>>productos_descuento('Lunes')
['Fideos','Arroz']

b) Construya la función tiene descuento(producto, dia), la cual recibe como parámetro el nombre
de un producto y un dia específico. La función debe retornar el porcentaje de descuento del
producto, si se encuentra en promoción, o False en caso contrario.

>>> tiene_descuento('Mani','Lunes')
False
>>> tiene_descuento('Mani','Viernes')
15

c) Suponga que cuando un cliente hace una compra se genera una lista de tuplas compras con los
productos y sus precios originales:

compras = [('Mani',1000), ('Fideos',400), ('Fideos',400),


('Arroz',600), ('Arroz',600), ('Antigrasa',1500),
Programación IWI131
Leonardo Ramírez

('Lavaloza',2000), ('Cloro',1250),('Pavo',6000),('Yogurth',150),
...]

Desarrolle la función precio final(compras, dia), la cual recibe como parámetro la lista compras y
un día en específico. El procedimiento debe imprimir por pantalla el precio total de la compra
(con el descuento ya aplicado) y el total ahorrado por los descuentos. La función no retorna
valores.

>>> precio_final(compras, 'Lunes')


El total es de 13300 pesos, y el ahorro es de 600 pesos.

IV)
En la Edad Feudal, el objetivo de toda civilización era formar un vasto imperio y vencer a sus
enemigos. Para lograrlo, era necesario contar con 4 valiosos recursos: Madera, Alimento, Oro y
Piedra. Para prevalecer, las civilizaciones debían crear unidades de guerra, las cuales surgían a
partir de la construcción de edificios militares.
La lista de tuplas edificios almacena en tuplas todos los edificios militares que un imperio podía
llegar a construir. Cada tupla se compone de dos elementos: el primero es un string con el
nombre del edificio y el segundo es una tupla de enteros con el costo en recursos necesarios para
construir ese edificio; es decir, (edificio, (madera,alimento,oro,piedra) ).
A su vez, las unidades de guerra se almacenan de la misma forma en la lista de tuplas unidades.
Cada tupla de la lista representa la unidad y su costo de creaci´on en recursos: (unidad,
(madera,alimento,oro,piedra) ):
edificios=[ (‘cuartel’,(175,0,0,0)), (‘arqueria’,(175,0,0,0)),
('taller',(200,0,0,50)),(‘establo’,(275,0,0,0)),…]
unidades=[(‘arquero’,(25,0,45,0)) ,(‘ballesta’,(35,0,45,0)),
(‘milicia’,(0,60,20,0)), (‘campeon’,(0,70,40,0)),
(‘jinete’,(0,60,75,0)), (‘caballero’,(0,65,85,0)),
(‘paladin’,(0,70,95,0)), (‘onagro’,(160,0,135,0)),
(‘catapulta’,(180,0,175,0)),…]
Para crear cada unidad de guerra es necesario haber construido antes su edificio base. El edificio
base de cada unidad se encuentra en la lista de tuplas base, donde el primer elemento de cada
tupla es el edificio base necesario para crear las unidades de guerra, las cuales se almacenan en
una tupla:
base = [(‘arqueria',(‘arquero’,’ballesta’)),
(‘taller’,(‘catapulta’,’onagro’)),
(‘establo’,(‘jinete’,’caballero’,’paladin’)),
(‘cuartel’,(‘milicia’,’campeon’)),…]
Programación IWI131
Leonardo Ramírez

Desarrolle la función recursos(lista_unidades) que retorne una tupla de enteros con el costo de
cada recurso, (madera,alimento,oro,piedra), necesario para crear las unidades de la lista
lista_unidades. Recuerde considerar el costo de construcción de los edificios. Un edificio se debe
construir solo una vez (si es necesario).
>>> recursos(['jinete','paladin'])
(275, 130, 170, 0)
>>> recursos(['campeon','ballesta','caballero'])
(660, 135, 170, 0)
>>>recursos(['catapulta','catapulta'])
(560, 0, 350, 50)

[DICCIONARIOS Y CONJUNTOS]
I)
Para renovar el permiso de circulación en Pythonia se debe de estar libre de multas sin pagar. El
Estado Libre de Pythonia cuenta con las siguientes estructuras para guardar la información de los
vehículos:
Un diccionario que guarda el registro de todas las multas sacadas a cada vehículo, donde la llave
es una tupla (patente, fecha), y el valor corresponde al costo de dicha multa.
multas = {('BCDF-13', '31-12-2017'):65000, ('GGWP-88', '15-09-
2015'):166000, ('QWRT-71', '06-06-2006'):666000, ('BCDF-13','01-
01-2018'):65000, ('PYTR-77', '03-05-2017'):35000, ... }
Además se cuenta con una lista de tuplas donde se tiene el total de dinero pagado asociado a cada
patente, cada patente aparece sólo una vez. Puede darse el caso que una patente con multas
impagas no aparezca debido a que no ha pagado peso alguno.
pagos = [('BCDF-13', 100), ('GGWP-88', 166000), ('QWRT-71',
666), ...]
Considerando lo anterior:
1) Cree la función deudas(multas, pagos) que recibe el diccionario de multas y la lista pagos. La
función debe retornar un diccionario donde la llave será la patente y el valor será el monto total
aun adeudado, es decir, si el vehículo ha pagado todas sus multas, no debe aparecer en el
diccionario.
>>> deudas(multas, pagos) {'QWRT-71': 665334, 'PYTR-77': 35000,
'BCDF-13': 130000}
2) Además, cree la función mas_multado( multas,pagos ) que recibe el diccionario de multas y la
lista pagos. La función deberá retornar un string con la patente que más veces ha sido multada,
Programación IWI131
Leonardo Ramírez

esto es en cantidad de veces que ha sido multada, independiente de que sus multas hayan sido
pagadas o no.
>>>mas_multados(multas,pagos)
'BCDF-13’
3) Ayudándose de ambas funciones realice un programa que muestre sólo las patentes con multas
impagas y además la patente que más veces ha sido multada. Guíese por siguiente ejemplo:
>>> Patentes con multas impagas:
QWRT-71
PYTR-77
BCDF-13
Patente mas veces multada: BCDF-13

II)
El cine de Pythonia tendrá una nueva cartelera este mes, por lo que le ha pedido ayuda a usted
para manejar la información:
La información de las películas se encuentra en el diccionario Peliculas; cuya llave es el nombre
de esta, y el dato asociado una tupla con: (País,año,calificacion)
Peliculas={‘Una Mujer Fantastica’:(‘Chile’,2017, 4.4), ‘El viaje
de Chihiro’:(‘Japon’,2001 ,4.0), ‘WALL-E’:(‘USA’,2008, 3.8),
‘Ciudad de Dios’:(‘Brasil’,2002, 3.7),
‘Mirageman’:(‘Chile’,2007, 5.0), ‘Star Wars: The Force Awakens’:
(‘USA’,2015, 3.2), ‘Your Name’:(‘Japon’, 2016, 4.0),…}
El cine de Pythonia te pide realizar las siguientes funciones:
Cree la función calificación(Peliculas,Nombre) que recibe el diccionario con la información de
las películas y el nombre de una de estas. La función debe entregar su calificación.
>>>calificación(Peliculas,’Mirageman’)
5.0
Cree la función top(Peliculas) que recibe el diccionario con la información de las películas. La
función debe retornar el nombre de la película con mejor calificación.
>>>top(Peliculas)
’Mirageman’
Programación IWI131
Leonardo Ramírez

Cree la función por_pais(Peliculas) que recibe el diccionario con la información de las películas.
La función debe entregar un diccionario cuya llave es un país y el dato asociado una lista con los
nombres de las películas provenientes de ese país.
>>>por_pais(Peliculas)
{‘Chile’:[‘Una mujer fantastica’,’Mirageman’], ‘Japon’:[‘El
viaje de Chihiro’, ‘Your Name’], ‘USA’:[‘WALL-E’,‘Star Wars: The
Force Awakens’,’Brasil’:[‘Ciudad de Dios’]}
Cree la función anio(Peliculas) que recibe el diccionario con la información de las películas. La
función debe entregar una lista con el nombre de las películas en orden ascendente con respecto
al año de estreno.
>>>anio(Peliculas)
[‘El viaje de Chihiro’,’Ciudad de Dios’, ‘Mirageman’, ‘WALL-E’,
‘Star Wars: The Force Awakens’,’Your Name’, ‘Una Mujer
Fantastica’]
Cree la función ranking_paises(Peliculas) que recibe el diccionario con la información de las
películas. La función debe entregar la una lista de tuplas (Pais, promedio) que se calcula sacando
el promedio de las calificaciones de todas las películas de ese país. La lista debe ser en orden
descendente.
>>>ranking_paises(Peliculas)
[(‘Chile’, 4.7),(‘Japon’, 4.0), (‘Brasil’, 3.7), (‘USA’, 3.5)]

III)
La Copa Mundial de la FIFA Rusia 2018 será la XXI edición de la Copa Mundial de Fútbol. En
esta edición el evento se realizará en Rusia entre el 14 de junio y el 15 de julio de 2018. Rusia
confirmó 12 estadios en 11 ciudades, las cuales albergaran los 64 partidos de la Copa Mundial.
La información de los estadios se encuentra de la siguiente forma:

La información de las ciudades se encuentra así: {ciudad:[(Estadio,capacidad),…],…}


ciudades ={ Moscu:[('Estadio Luzhniki ', 81.000),('Spartak ',
43.298)], San Petersburgo:[('Estadio de San Petersburgo ',
68.134)],…]

La información de los partidos por día se encuentra así: {Día:[[(Local,Visita),hora,Estadio],…]}


partidos = { ‘Dia1’:[[('Rusia', 'Arabia Saudita '), ‘11:00am’,
'Luzhniki Stadium']], ‘Dia2’:[[('Egipto', 'Uruguay '), ‘8:00pm’,
'Ekaterinburgo Arena'], [('Marruecos ', 'Iran'), ‘11:00am’,
'Zenit Arena'], [('Portugal ','Espana '), ‘14:00pm’, 'Fisht
Stadium ']], ‘Dia3’:[[('Francia ', 'Australia '), ‘6:00pm’,
'Kazan Arena'], [('Argentina ', 'Islandia '), ‘9:00pm’, 'Spartak
Programación IWI131
Leonardo Ramírez

Stadium '], [('Peru', 'Dinamarca '), ‘12:00pm’, 'Mordovia Arena


'], [('Croacia ', 'Nigeria '), ‘15:00pm’, 'Kaliningrado Stadium
']],…}

Y la información de los grupos se encuentra así:{Grupo:[pais1,pais2,…]


grupos = {'Grupo A': ['Rusia', 'Arabia Saudita ', 'Egipto',
'Uruguay '], 'Grupo B':['Portugal ', 'Marruecos ', 'Espana',
'Iran'],'Grupo C':['Francia ', 'Australia ', 'Peru', ' Dinamarca
'], 'Grupo D':['Argentina ', 'Islandia ', 'Croacia ', 'Nigeria
'], 'Grupo E':['Brasil', 'Suiza', 'Costa Rica', 'Serbia '],…}
Se desea conocer:
1)Los partidos que se realizaran en los tres primeros estadios con mayor capacidad. Para ello
debe crear la función partidos por estadio(ciudades,partidos). La cual recibe como parámetros el
diccionario ciudades y el diccionario partidos. La función debe determinar los 3 estadios con
mayor capacidad de público y retornar un diccionario, cuya llave corresponderá al nombre del
estadio y el valor corresponderá a una lista con los partidos que se realizan en este.
partidos_por_estadio(ciudades , partidos)
>>>{'San Petersburgo Stadium ': [('Nigeria ', 'Argentina '),
('Brasil', 'Costa Rica'), ('Marruecos ', 'Iran'), ('Rusia',
'Egipto ')], 'Luzhniki Stadium ': [('Portugal ', 'Marruecos '),
('Dinamarca ', 'Francia '), ('Rusia', 'Arabia Saudita '),
('Alemania ', 'Mexico ')], 'Fisht Stadium ': [('Australia ',
'Peru'), ('Portugal ', 'Espana '), ('Alemania ', 'Suecia '),
('Belgica ', 'Panama ')] }
2) El nombre de los estadios en donde juega un equipo determinado. Para ello debe crear la
función donde_juega(ciudades, partidos,equipo). La cual recibe como parámetro el diccionario
ciudades, el diccionario partidos y un string con el nombre del equipo que se desea consultar. La
función debe retornar un diccionario, cuyas llaves correspondan a los nombres de los estadios y
los valores correspondan a una tupla compuesta por la capacidad del estadio y la ciudad de este.
>>>donde_juega(ciudades, partidos, 'Rusia ')
{ 'Samara Arena ': (44.807, 'Samara '), 'San Petersburgo Stadium
': (68.134,'San Petersburgo '), 'Luzhniki Stadium ': (81.001,
'Moscu ') }
3) Partidos por estadios. Para ello, debe crear la función
partidos_por_estadios(ciudades,partidos), la cual recibe como parámetro el diccionario partidos.
Esta función debe retornar un diccionario, cuyas llaves correspondan a los nombres de los
estadios y el valor corresponda la cantidad de partidos jugados en dicho estadio.
>>>partidos_por_estadios(partidos)
Programación IWI131
Leonardo Ramírez

{ 'Volgogrado Arena ': 4, 'Fisht Stadium ': 4, 'Kazan Arena ':


4, 'Rostov Arena ': 4, 'Spartak Stadium ': 4, 'Nizhny Novgorod
Stadium ': 3, 'Samara Arena ': 5, 'Mordovia Arena ': 4,
'Ekaterinburgo Arena ': 3, 'San Petersburgo Stadium ': 4,
'Kaliningrado Stadium ': 4, 'Luzhniki Stadium ': 4 }

IV)
El sistema más popular de streaming musical de Pythonia, Pytify, le ha pedido al curso de
Programación de la UTFSM ayuda para implementar nuevas funcionalidades para su sistema.
Pytify guarda toda la información de sus canciones en un diccionar, que contiene el
código_canción:(Nombre,Artista,[Estilo1/Estilo2/…]
Asuma que un artista puede tener más de una canción, que los nombres de las canciones no se
repiten, y ojo que no todas las canciones del artista son del mismo estilo.
Canciones={1:(‘La medicina’,’Los Tetas’,[‘Funk’,’Rap’,’Rock’]),
2:(‘Shock’, ‘Ana Tijoux’, [‘Rap’,’Hip Hop’,’R&B’]), 3:(‘Amor
Violento’,’Los Tres’, [‘Jazz’,’Rock’,’R&B’]), 4:(‘Eligiendo una
Reina’,’Chancho en Piedra’,[‘Funk’,’Metal’,’Rock’]), 5:(‘Sacar
la Voz’, Ana Tijoux’, [‘R&B’,‘Jazz’,’Hip Hop’]), 6:(‘No sabes
que desperdicio’,’Los Tres’,[‘Metal’,’Rock’]), 7:(‘Papi Donde
esta el Funk?’,’Los Tetas’,[‘Funk’,’Rap’,’Jazz’])}
Además, tiene una lista de tuplas con las reproducciones del mes, donde la tupla sigue la
estructura (código_cancion, id_usuario) , siendo el id_usuario un string.
Reproducciones=[(6, '4C'), (3, '3D'), (5, '2B'), (2, '3D'), (1,
'4C'), (5, '4C'), (7, '4C'), (5, '3D'), (6, '2B'), (7, '3D'),
(7, '2B'), (1, '1A'), (2, '1A'), (3, '2B')]
Pytify le ha pedido que desarrolle las siguientes funciones:
A)Crear la función canciones_escuchadas(canciones,reproducciones) la cual recibe dos
parámetros: el diccionario con la información de las canciones, y la lista de tuplas de las
reproducciones del mes. La función debe retornar una lista con el nombre de todas las canciones
escuchadas en el mes.
>>>canciones_escuchadas(Canciones, Reproducciones)
[“La Medicina”, “Shock”, “Amor Violento”, “Sacar la voz”, “No
Que Desperdicio”, “Papi Donde esta el Funk”]
Programación IWI131
Leonardo Ramírez

B) Crear la función agregar(canciones,tuplanvo) la cual recibe 2 parámetros: el diccionario con


la información de las canciones, y tuplanvo que corresponde a una tupla donde se encuentra la
información de una canción (Nombre, Artista, lista_estilos). La función debe entregar el
diccionario modificando. El código de la canción será una unidad más que el mayor código.
>>>agregar(Canciones,(“Sopaipillas con Moztaza”,
”Sinergia”,[“Metal”,”Rock”])
Canciones={1:(‘La medicina’,’Los Tetas’,[‘Funk’,’Rap’,’Rock’]),
2:(‘Shock’, ‘Ana Tijoux’, [‘Rap’,’Hip Hop’,’R&B’]), 3:(‘Amor
Violento’,’Los Tres’, [‘Jazz’,’Rock’,’R&B’]), 4:(‘Eligiendo una
Reina’,’Chancho en Piedra’,[‘Funk’,’Metal’,’Rock’]), 5:(‘Sacar
la Voz’, Ana Tijoux’, [‘R&B’,‘Jazz’,’Hip Hop’]), 6:(‘No sabes
que desperdicio’,’Los Tres’,[‘Metal’,’Rock’]), 7:(‘Papi Donde
esta el Funk?’,’Los
Tetas’,[‘Funk’,’Rap’,’Jazz’]),8:(“Sopaipillas con Moztaza”,
”Sinergia”,[“Metal”,”Rock”])}
C) Crear la función genero(canciones, reproducciones) la cual recibe dos parámetros: el
diccionario con la información de las canciones, y la lista de tuplas de las reproducciones del
mes. La función debe retornar el nombre del Estilo Musical más escuchado, de haber más de
uno, entregarlos todos en una lista.
>>>genero(Canciones, Reproducciones)
[“Jazz”]
D)Crear la función pago(canciones, reproducciones) la cual recibe dos parámetros la cual recibe
dos parámetros: el diccionario con la información de las canciones, y la lista de tuplas de las
reproducciones del mes. La función debe retornar el monto a pagar a cada artista en un
diccionario, donde la llave es el nombre del artista y el valor asociado el monto a pagar en string.
Cada vez que se reproduce una canción, Pytify paga $5 al autor.
>>>pago(Canciones,Reproducciones)
{“Los Tetas”:”$25”, “Ana Tijoux”:”$25”, “Los Tres”:”$20”,
”Chancho en Piedra”:”$0”}
E) Crear la función Top5(canciones, reproducciones) la cual recibe dos parámetros: el
diccionario con la información de las canciones, y la lista de tuplas de las reproducciones del
mes. La función debe entregar una tupla, en el cual estarán los nombres de las 5 canciones más
escuchadas del mes en orden descentente c/r a las veces escuchadas.
>>>Top5(Canciones,Reproducciones)
(‘Sacar la Voz’,’Papi donde esta el Funk?’, ‘La
Medicina’,’Shock’,’Amor Violento’)
Programación IWI131
Leonardo Ramírez

(“No sabes que Desperdicio” también puede aparecer en lugar de una de las
tres últimas)

F) Crear la función recomendación(canciones, reproducciones, user, umbral ) la cual recibe 4


parámetros: el diccionario con la información de las canciones, la lista de tuplas de las
reproducciones del mes, el id de un usuario, y un número entero (umbral). La función debe
entregar una lista con una tupla de todas las canciones a recomendar al usuario user, la tupla
tendrá el nombre de la canción y el artista. Las canciones deberán cumplir las siguientes
condiciones para ser recomendadas:
-Las canciones no deben haber sido escuchadas durante el mes por el usuario.
-La cantidad de reproducciones debe ser mayor umbral.
-Las canciones deben pertenecer al menos a uno de los estilos musicales de las canciones
reproducidas por el usuario durante el mes.
>>>Recomendación(Canciones,Reproducciones,”1A”,2)
[(“Sacar la voz”, “Anita Tijoux”),(“Papi donde esta el
funk”,”Los Tetas”)]

También podría gustarte