Llistar per inicials¶
Desa les funcions d’aquest exercici al fitxer inicials.py.
Dissenya la funció
inicials_1que a partir d’un text representat per un string, calculi i retorni un diccionari. El diccionari està format per parells on la clau és una lletra i el valor una llista de paraules. La lletra de la clau correspon a la lletra inicial d’una paraula (només minúscules). Al diccionari hi han d’aparèixer totes les lletres inicials de les paraules del text i la llista associada ha d’estar formada per totes les paraules que comencen per la inicial, ordenades alfabèticament i sense repeticions. Al text hi pot haver lletres majúscules i minúscules i les paraules no porten accents; tampoc hi ha signes de puntuació. Per exemple:>>> dic = inicials_1('En aquesta frase no hi ha apostrofs pero hi ha repeticions') >>> if dic != {'e':['en'], 'a':['apostrofs', 'aquesta'], 'f':['frase'], 'n':['no'], ... 'h':['ha', 'hi'], 'p':['pero'], 'r':['repeticions']}: ... print(dic) >>> dic = inicials_1('My taylor is rich and my mother is in the kitchen') >>> if dic != {'a':['and'], 'i':['in', 'is'], 'k':['kitchen'], 'm':['mother', 'my'], ... 'r':['rich'], 't':['taylor', 'the']}: ... print(dic)
Nota
Podeu descarregar el fitxer amb tests
inicials_1.txt.Dissenyeu la funció
inicials_2com l’anterior però de forma que permeti tractar textos on hi hagi signes de puntuació (punt, coma, punt i coma, dos punts, exclamació i interrogació) i apòstrofs. En aquest cas cal considerar com paraules el que hi ha abans i el que hi ha darrera de l’apòstrof. Per exemple:
>>> dic = inicials_2("Dins la fosca tot d'una, sobre el tronc d'un vell pi, s'enfilava la lluna, com el punt d'una i.") >>> if dic != {'c': ['com'], 'e': ['el', 'enfilava'], 'd': ['d', 'dins'], ... 'f': ['fosca'], 'i': ['i'], 'l': ['la', 'lluna'], ... 'p': ['pi', 'punt'], 's': ['s', 'sobre'], 'u': ['un', 'una'], ... 't': ['tot', 'tronc'], 'v': ['vell']}: ... print(dic) >>> dic = inicials_2("This is Frank's watch and you've broken it.") >>> if dic != {'t':['this'], 'i':['is', 'it'], 'f':['frank'], 's':['s'], ... 'w':['watch'], 'a':['and'], 'y':['you'], 'v':['ve'], ... 'b':['broken']}: ... print(dic)Nota
Podeu descarregar el fitxer amb tests
inicials_2.txt.
Solució
Disposeu de solucions al fitxer inicials.py