GreatNoise X47293


Statement
 

pdf   zip

html

La plataforma musical GreatNoise.com vol millorar el servei que ofereix als seus subscriptors. Per això afegirà diferents funcionalitats que els usuaris podran fer servir a les seves llistes de reproducció.

Una llista de reproducció és una llista de cançons, que a la seva vegada són una lista amb els elements següents:

  • Títol de la cançó (str)
  • Autor o grup (str)
  • Nom de l’àlbum (str)
  • Duració en segons (int)

Els tres problemes a continuació estan relacionats amb aquestes dades, però poden resoldre’s de manera independent, les seves solucions no depenen en cap manera de la dels altres problemes.

  1. GreatNoise.com vol mostrar la duració total d’una llista de reproducció. Programa una funció calcula_duracion(lista_reproduccion) que, a partir de lista_reproduccion, una llista com les descrites a l’inici, retorni la duració total en minuts i segons de la llista proporcionada.
  2. GreatNoise.com també vol que l’usuari tingui més informació sobre les cançons afegides a la llista de reproducció. Programa una funció clasificar_duracion(lista_reproduccion) que, a partirde lista_reproduccion, una llista com les descrites a l’inici, retorni un diccionari que indiqui el nombre de cançons de duració:
    1. inferior a 3 minuts
    2. entre 3 y 5 minuts (ambdós inclosos)
    3. major a 5 minuts

    Utilitza les lletres ’a’, ’b’, y ’c’ com a claus del diccionari.

  3. Finalmente, GreatNoise.com quiere calcular estadísticas sobre las listas de reproducción. Programa una función estadisticas(lista_reproduccion) que a partir de lista_reproduccion, una lista como las descritas al inicio, retorne un diccionario que asocie los títulos de las canciones de la lista de reproducción con el autor y todos los álbumes de la lista de reproducción en los que la canción aparece.

    Finalment, GreatNoise.com vol calcular estadístiques sobre les llistes de reproducció. Programa una funció estadisticas(lista_reproduccion) que, a partir de lista_reproduccion, una llista com les descrites a l’inici, retorni un diccionari que assocïi els títols de les cançons de la llista de reproducció amb una llista composada per l’autor i tots els àlbums (es poden repetir) on apareix la canço a la llista de reproducció.

Puntuació

Apartado 1: 33 puntos.

Apartado 2: 33 puntos.

Apartado 3: 34 puntos.

Sample session
>>> lista = [["Higher", "Creed", "Greatest Hits", 316],
...          ["Basket Case", "Green Day", "Dookie", 182],
...          ["Glycerine", "Bush", "Sixteen Stone", 266],
...          ["Congregation", "Foo Fighters", "Sonic Highways", 312],
...          ["Blackbird", "Alter Bridge", "Blackbird", 478],
...          ["Basket Case", "Green Day", "God's FB", 182],
...          ["Fuck You", "Bad Religion", "True North", 134],
...          ["Higher", "Creed", "Human Clay", 316]]
>>> calcula_duracion(lista)
(36, 26)

>>> clasificacion = clasificar_duracion(lista)
>>> clasificacion == {'a': 1, 'b': 3, 'c': 4}
True

>>> lista = [["Higher", "Creed", "Greatest Hits", 316],
...          ["Basket Case", "Green Day", "Dookie", 182],
...          ["Glycerine", "Bush", "Sixteen Stone", 266],
...          ["Congregation", "Foo Fighters", "Sonic Highways", 312],
...          ["Blackbird", "Alter Bridge", "Blackbird", 478],
...          ["Basket Case", "Green Day", "God's FB", 182],
...          ["Fuck You", "Bad Religion", "True North", 134],
...          ["Higher", "Creed", "Human Clay", 316]]
>>> canciones = estadisticas(lista)
>>> canciones == {'Higher': ['Creed', 'Greatest Hits', 'Human Clay'],
...               'Basket Case': ['Green Day', 'Dookie', "God's FB"],
...               'Glycerine': ['Bush', 'Sixteen Stone'],
...               'Congregation': ['Foo Fighters', 'Sonic Highways'],
...               'Blackbird': ['Alter Bridge', 'Blackbird'],
...               'Fuck You': ['Bad Religion', 'True North']}
True
Information
Author
InfBesos
Language
Catalan
Translator
Original language
Spanish
Other languages
English Spanish
Official solutions
Python
User solutions
Python