Castellers de la colla Moments Estàtics¶
La colla de castellers Moments estàtics té les dades dels seus castellers en un fitxer de posicions. Al fitxer de posicions hi ha una línia per cada casteller on hi ha el nom i una sèrie de posicions que pot ocupar el casteller. Per exemple, la línia:
Guifré dosos tresos pinya
indica que el casteller Guifré pot ocupar les posicions de
dosos, tresos o pinya. El fitxer colla.txt
n’és un exemple. Pots veure’n les primeres línies a continuació:
Victoria enxanetes
Aureli tresos pinya
Joan cincs
Pepet dosos pinya
Fergana acotxadors
L’objectiu és dissenyar la funció lacolla() que rep el nom d’un
fitxer com el descrit i retorna un diccionari de
posicions. Cadascuna de les claus d’un diccionari de posicions és
el nom d’una posició i el valor corresponent és la llista dels
castellers que poden ocupar aquella posició, ordenada
alfabèticament. Si per alguna posició no hi ha cap casteller aquesta
posició no ha d’apareixer al diccionari.
Però abans, dissenya les funcions següents i desa-les al fitxer
castellers.py.
- castellers.actualitza_dic_posicions(dp, nom, posicions)¶
dp és un diccionari de posicions.
nom (
str) és el nom d’un casteller.posicions és una llista de posicions (
str)La funció modica dp afegint el casteller nom a cada una de les posicions de la llista posicions.
Per exemple:
>>> d = {} >>> actualitza_dic_posicions(d, 'Jair', ['uns', 'pinya']) >>> if d != { ... 'uns': ['Jair'], ... 'pinya': ['Jair'], ... }: print(d) >>> d = {'uns': ['Jair'], 'pinya': ['Jair']} >>> actualitza_dic_posicions(d, 'Aureli', ['pinya', 'tresos', 'quatres']) >>> if d != { ... 'uns': ['Jair'], ... 'pinya': ['Jair', 'Aureli'], ... 'tresos':['Aureli'], ... 'quatres': ['Aureli'] ... }: print(d)
Trobaràs més tests al fitxer
test-actualitza_dic_posicions.txt.
- castellers.ordena_dic_posicions(dp)¶
dp és un diccionari de posicions.
La funció modica dp ordenant alfabèticament la llista de noms de castellers de cada una de les posicions.
Per exemple:
>>> d = { ... 'enxanetes': ['Victoria', 'Romina'], ... 'uns': ['Jair'], ... 'pinya': ['Pepet', 'Aureli', 'Filibert', 'Jair', 'Tarsici', 'Jaume'], ... 'dosos': ['Tarsici', 'Jaume', 'Filibert', 'Pepet'], ... 'acotxadors': ['Fergana', 'Spira', 'Jasmina'], ... 'quatres': ['Tibur'], ... 'cincs': ['Tito', 'Joan'], ... 'tresos': ['Fidel', 'Aureli'] ... } >>> ordena_dic_posicions(d) >>> if d != { ... 'enxanetes': ['Romina', 'Victoria'], ... 'uns': ['Jair'], ... 'pinya': ['Aureli', 'Filibert', 'Jair', 'Jaume', 'Pepet', 'Tarsici'], ... 'dosos': ['Filibert', 'Jaume', 'Pepet', 'Tarsici'], ... 'acotxadors': ['Fergana', 'Jasmina', 'Spira'], ... 'quatres': ['Tibur'], ... 'cincs': ['Joan', 'Tito'], ... 'tresos': ['Aureli', 'Fidel'] ... }: print(d)
Trobaràs més tests al fitxer
test-ordena_dic_posicions.txt.
Ara ja pots dissenyar la funció lacolla().
- castellers.lacolla(nomf)¶
nomf és el nom d’un fitxer de posicions.
Retorna un diccionari de posicions calculat a partir de les dades del fitxer nomf.
Per exemple:
>>> d = lacolla('colla.txt') >>> d['enxanetes'] ['Romina', 'Victoria'] >>> d['cincs'] ['Joan', 'Tito'] >>> d['pinya'] ['Aureli', 'Filibert', 'Jair', 'Jaume', 'Pepet', 'Tarsici'] >>> if d != { ... 'enxanetes': ['Romina', 'Victoria'], ... 'uns': ['Jair'], ... 'pinya': ['Aureli', 'Filibert', 'Jair', 'Jaume', 'Pepet', 'Tarsici'], ... 'dosos': ['Filibert', 'Jaume', 'Pepet', 'Tarsici'], ... 'acotxadors': ['Fergana', 'Jasmina', 'Spira'], ... 'quatres': ['Tibur'], ... 'cincs': ['Joan', 'Tito'], ... 'tresos': ['Aureli', 'Fidel'], ... }: print(d)
Trobaràs més tests al fitxer
test-lacolla.txt.
Solucions
Trobaràs una solució al fitxer castellers.py.