Classifica comarques

La informació de una determinada població es representa com una llista de tres elements: el nom de la població (un string), el nom de la comarca (un string) i la altitud (un enter). Un exemple amb la informació de Cervera seria: [‘Cervera’, ‘Segarra’, 548].

  1. Dissenya una funció classificaUnaComarca(lpob, com) que donada una llista lpob de poblacions com les descrites a dalt i el nom d’una comarca com, calcula i retorna un d’aquest tres strings: ‘de muntanya’ si és una comarca de muntanya, ‘de costa’ si és de costa, o ‘mixta’ si és una comarca “mixta”. Una comarca es diu que és de muntanya quan totes les seves poblacions estan per sobre de 500 metres; es diu que és de costa quan totes les seves poblacions estan per sota o igual a 500 metres; altrament es diu que és una comarca mixta (te algunes poblacions per sobra i d’altres per sota de 500 metres). Pots suposar que la comarca com te almenys una població a la llista lpob.

    >>> lp = [ [ 'Gurb', 'Osona', 563],
    ...        [ 'Cervera', 'Segarra', 548 ],
    ...        [ 'Balaguer', 'Noguera', 233 ],
    ...        [ 'Tarrega', 'Segarra', 490 ],
    ...        [ 'Odena', 'Anoia', 421 ]
    ...      ]
    >>> classificaUnaComarca(lp, 'Segarra')
    'mixta'
    >>> classificaUnaComarca(lp, 'Osona')
    'de muntanya'
    

  1. Dissenya una funció classificaLlistaComarques(lpob, lcom) que donada una llista lpob amb informació de diverses poblacions, i una llista lcom amb noms de comarques, calcula i retorna tres llistes: una amb aquelles comarques de lcom que són de muntanya, un altre amb les que són de costa i un altre amb les comarques de la llista lcom que són “mixtes”.

    Tingues en compte el següent:

    • Fes servir la funció classificaUnaComarca que has implementat a l’apartat anterior.

    • Cadascuna de les tres llistes de comarques ja classificades ha de estar ordenada per ordre alfabètic, i no poden contenir noms repetits.

    • Pots suposar que totes les comarques de la llista lcom tenen almenys una població a la llista lpob.

    • També pots suposar que la llista lcom no conté noms repetits.

      >>> lp = [ [ 'Gurb', 'Osona', 563 ],
      ...        [ 'Cervera', 'Segarra', 548 ],
      ...        [ 'Balaguer', 'Noguera', 233 ],
      ...        [ 'Tarrega', 'Segarra', 490 ],
      ...        [ 'Odena', 'Anoia', 421 ]
      ...      ]
      >>> lc = ['Anoia', 'Segarra', 'Noguera']    # Es classifiquen només aquestes tres
      >>> lCosta, lMuntanya, lMixtes = classificaLlistaComarques(lp, lc)
      >>> lCosta
      ['Anoia', 'Noguera']
      >>> lMuntanya
      []
      >>> lMixtes
      ['Segarra']
      

  1. Dissenya una funció llistaNomsComarques(lpob) que donada una llista lpob amb informació de diverses poblacions, calcula i retorna la llista del noms de comarques que les poblacions de lpob. La llista de comarques resultant ha de estar ordenada per ordre alfabètic i no pot contenir noms repetits.

    >>> lp = [ [ 'Gurb', 'Osona', 563 ],
    ...        [ 'Cervera', 'Segarra', 548 ],
    ...        [ 'Balaguer', 'Noguera', 233 ],
    ...        [ 'Tarrega', 'Segarra', 490 ],
    ...        [ 'Odena', 'Anoia', 421 ]
    ...      ]
    >>> llistaNomsComarques(lp)
    ['Anoia', 'Noguera', 'Osona', 'Segarra']
    

  1. Dissenya una funció comarquesCostaneres(lpob) que donada una llista lpob amb informació de diverses poblacions, calcula i retorna la llista de totes les comarques costaneres d’aquesta llista de poblacions. Una comarca és costanera quan totes les seves poblacions estan per sota o igual a 500 metres.

    Tingues en compte el següent:

    • Fes servir les funcions llistaNomsComarques i classificaLlistaComarques que has implementat als apartats anteriors.

    • Si no hi ha cap comarca costanera es retornarà la llista buida.

    • La llista de comarques costaneres resultant ha de estar ordenada per ordre alfabètic i no pot contenir noms repetits.

      >>> lp = [  [ 'Gurb', 'Osona', 563 ],
      ...         [ 'Cervera', 'Segarra', 548 ],
      ...         [ 'Balaguer', 'Noguera', 233 ],
      ...         [ 'Tarrega', 'Segarra', 490 ],
      ...         [ 'Odena', 'Anoia', 421 ]
      ...      ]
      >>> comarquesCostaneres(lp)
      ['Anoia', 'Noguera']