.. index:: Classifica comarques 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*. .. code-block:: python3 >>> 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' | 2. 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. .. code-block:: python3 >>> 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'] | 3. 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. .. code-block:: python3 >>> lp = [ [ 'Gurb', 'Osona', 563 ], ... [ 'Cervera', 'Segarra', 548 ], ... [ 'Balaguer', 'Noguera', 233 ], ... [ 'Tarrega', 'Segarra', 490 ], ... [ 'Odena', 'Anoia', 421 ] ... ] >>> llistaNomsComarques(lp) ['Anoia', 'Noguera', 'Osona', 'Segarra'] | 4. 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'] | | | | | | | | | |