3. Vacunes¶
La informació sobre la vacunació a diferents comarques de Catalunya s’emmagatzema a un fitxer on cada línia representa a una persona i està formada pel sexe, la comarca, les dosis que porta posades, la data de vacunació i el fabricant, tot separat per punt i coma (;). Les dates estan representades amb el format dd/mm/aaaa. Per exemple:
Dona;ALT EMPORDA;1;28/06/2021;BioNTech / Pfizer
Home;BERGUEDA;1;07/01/2022;Moderna / Lonza
Home;CERDANYA;1;01/04/2021;BioNTech / Pfizer
Dona;CERDANYA;1;01/04/2021;Oxford / AstraZeneca
Dona;BERGUEDA;2;01/04/2021;BioNTech / Pfizer
Home;CERDANYA;2;01/04/2021;BioNTech / Pfizer
Home;BERGUEDA;1;02/08/2021;BioNTech / Pfizer
Dona;ALT EMPORDA;1;01/04/2021;BioNTech / Pfizer
Dona;BERGUEDA;3;07/01/2022;Moderna / Lonza
Per resoldre aquest exercici has de dissenyar les funcions següents i desar-les al mòdul vacunes (fitxer vacunes.py):
- vacunes.filtra_fitxer(nom_f_dades, nom_f_sort, a)¶
Donat un string
nom_f_dadesamb el nom d’un fitxer amb dades de vacunació com el descrit anteriorment, un altre stringnom_f_sortamb el nom d’un segon fitxer i un entera, escriu al fitxer anomenatnom_f_sortles dades del primer fitxer corresponents a l’anya, en el mateix format que l’original però només amb la informació de sexe, comarca i fabricant.Per exemple, donada la crida
filtra_fitxer('vac.txt','vac_filtrat.txt',2021)
a on
vac.txtés el fitxer de l’exemple anterior (vac.txt), la funció crearia el fitxervac_filtrat.txtamb el següent contingut:Dona;ALT EMPORDA;BioNTech / Pfizer Home;CERDANYA;BioNTech / Pfizer Dona;CERDANYA;Oxford / AstraZeneca Dona;BERGUEDA;BioNTech / Pfizer Home;CERDANYA;BioNTech / Pfizer Home;BERGUEDA;BioNTech / Pfizer Dona;ALT EMPORDA;BioNTech / Pfizer
Disposeu de tests al fitxer
test-filtra-fitxer.txt.
- vacunes.classifica(nomf_filtrat)¶
nomf_filtratés el nom d’un fitxer (string) de vacunació com el que escriu la funció anterior, és a dir, només amb la informació de sexe, comarca i fabricant.Retorna un diccionari de comarques creat a partir de les dades contingudes al fitxer.
En aquest diccionari, cada clau és una tupla amb una comarca i un fabricant i cada valor una llista de dos elements amb el nombre de dones i homes respectivament vacunats en cada comarca i amb els diferents fabricants.
Per exemple, pel fitxer de l’exemple anterior (
vac_filtrat.txt), la crida:classifica('vac_filtrat.txt')
retornaria el següent diccionari:
{('ALT EMPORDA', 'BioNTech / Pfizer'): [2, 0], ('CERDANYA', 'BioNTech / Pfizer'): [0, 2], ('CERDANYA', 'Oxford / AstraZeneca'): [1, 0], ('BERGUEDA', 'BioNTech / Pfizer'): [1, 1]}
Disposeu de tests al fitxer
test-classifica.txt.